自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 JavaScript 执行机制浅析

JavaScript执行机制;单线程;同步任务、异步任务;宏任务、微任务;事件循环

2021-07-02 17:57:19 597

原创 前端 防止浏览器提示记住密码以及自动填充密码

当前端的 type=’password‘ 时,浏览器为了优化用户体验,会在表单提交后提示用户记住密码如果不想要这样的行为,最简单的当然是提示用户自己在浏览器设置中进行相关配置如果希望在代码层面阻止浏览器提示是否记住密码或者自动填充密码,应该怎么做呢?

2024-01-24 16:56:11 723

原创 简述JavaScript函数柯里化

柯里化是一种转换,将f(a,b,c)转换为可以被以f(a)(b)(c)的形式进行调用。JavaScript 实现通常都保持该函数可以被正常调用,并且如果参数数量不足,则返回部分应用函数。柯里化让我们能够更容易地获取部分应用函数。就像我们在日志记录示例中看到的那样,普通函数在被柯里化之后,当我们调用它的时候传入一个参数(如log(date))或两个参数()时,它会返回部分应用函数。

2023-10-19 17:40:28 165

原创 【Antd】InputNumber 只能输入整数

方式 2:使用 formatter 或 parser,利用正则控制只能输入整数。方式 1:使用 precision,对输入的内容做保留 0 位小数处理。

2023-10-11 16:55:52 2851

原创 JavaScript代码中字符串如何换行?

在工作中,代码提交之前可能会有一些语法检查的限制,限制我们的单行代码长度。对于一些逻辑代码,有多种换行方式。这里主要记录一下对于。进行字符串拼接之外,也可以通过在字符串末尾加。的方式来进行换行,注意中间不要有空格。对于字符串,除了使用。过长情况的处理方式。

2023-09-04 13:42:20 2153

原创 react 父子组件通信 基础

【代码】react 父子组件通信 基础。

2023-07-30 11:54:05 803

原创 Next.js 入门简介

总结来说,Next.js 是一个简单易用的服务端渲染框架,它可以提高 React 应用程序的性能、可扩展性和易用性。Next.js 是一款基于 React 框架的轻量级服务端渲染框架,它在 React 基础上提供了一些额外的功能,如静态页面生成和服务器端渲染。你可以将这个应用程序部署到你的服务器上,以便用户可以访问你的网站。最后,你可以使用 Next.js 的构建工具将你的应用程序部署到生产环境中。接下来,你可以在页面组件中使用 Next.js 提供的一些特殊的生命周期方法,如。文件将会作为网站的主页,

2023-03-19 17:56:00 2318 1

原创 TypeScript 快速入门

TypeScript是JavaScript的超集。它对JS进行了扩展,向JS中引入了类型的概念,并添加了许多新的特性。TS代码需要通过编译器编译为JS,然后再交由JS解释器执行。TS完全兼容JS,换言之,任何的JS代码都可以直接当成TS使用。相较于JS而言,TS拥有了静态类型,更加严格的语法,更强大的功能。具体来说,TS可以在代码执行前就完成代码的检查,减小了运行时异常的出现的几率;TS代码可以编译为任意版本的JS代码,可有效解决不同JS运行环境的兼容问题。

2022-10-16 21:47:19 909

原创 Vue:对比于 Options API,为什么 Composition API 很香?

先说结论,对比于 Options API,Composition API 的优点主要有以下两点:1.能够将代码按照功能进行封装,降低开发成本与后期维护成本,且让setup中的逻辑更清晰易读。2.能够方便的实现代码逻辑复用。通过动图对比 Options API 与 Composition API。通过代码对比 Options API 与 Composition API。.........

2022-07-27 23:02:53 1215 2

原创 登录、校验之cookie与session(Node.js、Koa2)

HTTP 是无状态的协议(对于事务处理没有记忆能力,每次客户端和服务端会话完成时,服务端不会保存任何会话信息):每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。所以服务器与浏览器为了进行会话跟踪(知道是谁在访问我),就必须主动的去维护一个状态,这个状态用于告知服务端前后两个请求是否来自同一浏览器。而这个状态需要通过 cookie 或者 session 去实现。cookie 存储在客户端。 cookie 是服务器发送到用户浏览器并保存在本地

2022-06-07 14:00:00 2376

原创 MongoDB快速入门与基本使用

数据库(database) 是一个独立的系统,和服务端语言无关,和任何服务端的语言、框架 都可连接。web server、MongoDB与database间的关系如下。MongoDB中database、collection及document之间的关系如下。注:数据库(database)和集合(collection)都是数据容器,文档(document)是单条数据。MongoDB的常见操作方式主要有三种,分别是使用MongoDB Compass操作、终端操作以及使用Nodejs操作,展示如下。MongoDB

2022-06-07 10:00:00 497

原创 Koa2框架快速入门与基本使用

简单来讲,Koa2是一个基于nodejs的web server框架。官方文档Koa2框架使用入门不使用脚手架,直接使用Koa框架:# 新建文件夹,控制台进入文件夹npm initnpm install koa然后就可以新建js文件写Koa代码了。带有详细注释的示例代码如下。const Koa = require('koa')const app = new Koa()// ctx: context, 上下文app.use((ctx) => { ctx.body =

2022-06-03 05:00:00 5965

原创 使用Nodejs搭建Web Server(入门教程)

搭建HTTP服务器使用nodejs启动web服务时,要使用http模块;本机的IP和域名分别为127.0.0.1和localhost;比如,本机服务端开启了3000端口,则客户端可以访问http://127.0.0.1:3000/或http://localhost:3000/。使用nodejs定义路由时,要从前端request中获取url和HTTP method,并判断method与url是否符合;带有详细注释的示例代码如下。const http = require('http')const s

2022-05-31 16:50:31 3417 1

原创 数据结构与算法基础知识(三):常见排序、搜索算法

前言本篇介绍一些比较常见的排序算法与搜索算法。排序:把某个乱序的数组变成升序或者降序的数组。搜索:找出数组中某个元素的下标。冒泡排序思路:两两比较arr数组中所有相邻元素,如果前一个比后一个大,则交换它们;一轮下来,可以保证最后一个数是最大的;执行arr.length - 1轮,就可以完成排序。演示:代码:function swap(arr, i, j) { const temp = arr[i] arr[i] = arr[j] arr[j] = te

2022-05-23 14:29:07 286

原创 数据结构与算法基础知识(二):常见数据结构

栈栈是一个后进先出的数据结构。JavaScript中没有栈,但是可以用Array实现栈的所有功能。const stack = []// 入栈stack.push(0)stack.push(1)// 出栈const val1 = stack.pop() // 1const val2 = stack.pop() // 0栈的典型应用1047. 删除字符串中的所有相邻重复项var removeDuplicates = function (s) { const stack =

2022-05-20 15:00:03 447

原创 Git基本用法详解

Git是一个开源的分布式版本控制系统,可以高效的解决项目版本管理的问题。基本概念Git中的区域划分:Workspace:工作区,就是平时进行开发改动的地方,是当前看到最新的内容。开发的过程也就是对工作区的操作。Index:暂存区,暂时存放未提交的内容。当执行 git add 的命令后,工作区的文件就会被移入暂存区,暂存区标记了当前工作区中哪些内容是被 Git 管理的。当完成某个需求或者功能后想要提交代码,第一步就是通过 git add 添加到暂存区。Repository:本地仓库,位于自己的电

2022-05-08 13:10:00 723

原创 async/await用法详解

* `await`命令只能用在`async`函数之中,如果用在普通函数中会报错。* `async`函数体内,`await`命令之前的代码以及`await`命令所在语句中`await`后的代码都为正常的同步代码,在`async`函数调用时正常执行。* `async`函数会返回一个`Promise`对象。若返回的不是一个显式的`Promise`对象,则会使用`Promise.resolve()`包装成`Promise`对象。* `await`命令后跟一条返回`Promise`对象的语句。若语句返回的

2022-04-29 04:30:00 2268

原创 浅谈JavaScript垃圾回收与内存泄漏

核心概念开门见山,我们先了解一下内存泄漏和垃圾回收的概念什么是内存泄漏不再用到的数据、变量等仍然占用内存,且被占用的内存没有及时得到释放,即为内存泄漏。内存泄漏有什么影响一次内存泄漏的危害或许可以忽略不计,但是内存泄漏堆积会导致很严重的后果。比较严重的时候,无用的内存占用越来越高,可能导致系统卡顿,甚至导致进程崩溃。什么是垃圾回收JS 具有自动寻找不再使用的变量并释放其所占用的内存的机制,即为垃圾回收机制。垃圾回收的必要性由于字符串、对象和数组没有固定大小,所有当他们的大小已知时,才能对

2022-04-25 11:00:00 742

原创 关于JavaScript时间戳及其与日期对象的相互转换

时间戳: 表示从1970年1月1日零点距离某时刻的毫秒数。那么,为什么起始时间从1970年开始?简单来讲,很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0点是时间纪元,所以为常说的UNIX时间戳是以1970年1月1日0点为计时起点的。获取日期对象:使用new Date()即可得到日期对象,如果Date()中不写参数则返回当前时间的日期对象,如果Date()中写参数则返回参数指定时间的日期对象。new Date()// Thu Apr 21 2022 21:05:44 GMT

2022-04-21 21:40:51 2801

原创 十分钟学会JavaScript深克隆与浅克隆

什么是深克隆与浅克隆浅克隆,即只克隆目标对象的第一层数据,如果对象的某些属性值又是引用类型值,则不进一步克隆它们,只是传递它们的引用。与浅克隆对应的就是深克隆,即克隆目标对象的全貌,不论对象的属性值是否是引用类型值,都能将他们实现克隆。能快速实现浅克隆的方法如下:arr1 = [...arr]arr1 = arr.slice()arr1 = arr.concat()obj1 = Object.assign({}, obj)比如,以上的Object.assign()方法只克隆第一层,属于浅

2022-04-20 15:00:00 1329

原创 Vue异步更新DOM及$nextTick执行机制浅析

Vue实现响应式并不是数据发生变化之后DOM立即变化,而是按一定的策略进行DOM的更新。`$nextTick`会在DOM更新之后被触发,以获取最新DOM节点。因为如果同步进行DOM更新,则每次对响应式数据进行修改就都会`触发setter -> 通知watcher -> 触发re-render -> 生成new vnode(vdom) -> patch(更新真实DOM)`。如果每次修改数据都会走一遍这个流程是非常消耗性能的,所以使用异步更新DOM的策略,先对数据修改进行整合,再使用最终的整合结果一次性对DOM

2022-04-19 12:23:00 6136

原创 数据结构与算法基础知识(一):时间复杂度和空间复杂度

算法(Agorithm) 是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间复杂度:假设各操作的运行时间为固定常数,统计算法运行的「计算操作的数量」 ,以代表算法运行所需时间;空间复杂度:统计在最差情况下,算法运行所需使用的「最大空间」;

2022-04-18 17:38:31 1428

原创 npm基本使用

npm,即node package manager,是Node.js标准的软件包管理器。npm可以管理项目依赖的下载。安装软件包 npm install安装所有依赖如果项目具有package.json文件,则通过运行:npm install会在node_modules文件夹(如果尚不存在则会创建)中安装项目所需的所有依赖。安装单个软件包可以通过运行以下命令安装特定的软件包:npm install <package-name>通常会在此命令中看到更多标志:--sav.

2022-04-15 18:51:56 3857

原创 JavaScript DOM操作为什么会影响性能

DOM操作影响性能的原因,跨模块调用,重绘、回流,浏览器渲染机制

2022-04-12 11:25:56 2222

原创 前端面试常见手写题:手写new操作符

前端面试常见手写题:手写new操作符;前置知识:Object.create();new 操作符作用;手写 new 操作符

2022-03-21 10:09:12 2200

原创 小知识:使用JavaScript实现千位分隔符

使用JavaScript实现千位分隔符

2022-03-19 14:14:33 2276

原创 前端笔试输入输出模板-nodejs

前端笔试输入输出模板,nodejs,readline

2022-03-14 09:35:45 1848

原创 JavaScript生成随机整数数组、数组元素随机排序

JavaScript获取随机整数数组、数组元素随机排序

2021-12-10 14:01:56 2865 1

原创 JavaScript生成二维数组

方法一: new Array(x).fill(new Array(y).fill(false))但注意,当一个对象别传递给fill方法时,填充数组的是这个对象的引用。即二维数组的第一个维度中的每一个数组都指向同一个引用,如果向第一个维度中的任一元素执行push,则每一个二维中都会多一个元素。方法二:Array.from(new Array(x), () => new Array(y).fill(false))测试代码: const arr1 = new Array(2).fill(new Ar

2021-12-10 11:37:20 6059

原创 JavaScript 数组去重的常用方法

原始数组:const arr = [1, 1, '1', 17, true, true, false, NaN, false, NaN, 'true', 'a', {}, {}];利用ES6的Set实现: const newArr1 = [...new Set(arr)]; console.log(newArr1); 控制台打印:[1, '1', 17, true, false, NaN, 'true', 'a', {…}, {…}]利用includes方法实

2021-09-29 16:22:48 1167

原创 JavaScript基本类型与引用类型的区别

会出现这样的情况是因为JavaScript基本类型和引用类型在数据存储和变量传值方面存在差别。基本类型数据占用内存空间一般很小,而引用类型占用空间可能很大。所以考虑到计算机性能问题,一个设计成值传递,一个设计成址传递。

2021-09-16 13:37:28 1201

原创 Latex从零基础入门到完成论文格式修改

前言:笔者由于需要用Latex 对论文格式进行排版,所以对 Latex 的应用从零开始进行学习,将在学习过程中有用的内容记录如下,方便自己日后查阅,也给有相同需要的后来人提供方便。目录Latex 的简介及安装(推荐使用 TeX Live & TeXstudio)TeXstudio 基本使用Latex 入门(了解)在 Latex 中插入参考文献参考文献连续引用LaTeX 之公式及编号LaTeX 及 Typora 数学符号LaTeX 设置字体格式(加粗,斜体,下划..

2021-09-02 22:38:21 3609

原创 论文小结:PVN3D

整体结构:大致思路:输入RGB-D图像,使用特征提取模块将外观特征与几何信息融合。 将提取到的特征输入到一个3D关键点检测模块Mk,该模块经过训练来预测每个点到关键点的偏移量(应该是只是预测出了偏移量,并没有进行投票,因为还不知道进行预测的点是属于哪个实例对象的,即使投票,也不知道得到的关键点是哪个的关键点,并且投票时还会受到其他实例上的点的预测结果的干扰)。 并且将提取到的特征输入到一个用于多对象处理的实例分割模块 ,其中语义分割模块Ms预测每个点的语义标签,中心投票模块Mc预测每个点

2021-09-02 21:52:37 1365

原创 论文笔记:DeepIM

一句话概括: 仅使用 RGB 图像,对初始的位姿进行迭代优化的方法;也就是 输入目标图像和初始位姿,输出更精确的位姿。 整体框架:network 结构:主要贡献:提出了仅使用 RGB 图像的位姿迭代优化方法; 提出了一种解耦的物体位姿变换的方式,以实现精确的姿态估计。这种表示方式也使提出的方法能够优化未见过的对象的姿态。基于LINEMOD数据集的两种不同 初始姿态生成方法 的消融研究。注:文章最初通过向地面真实姿态添加噪声作为初始姿态; 文.

2021-09-02 21:03:13 1249

原创 论文笔记:Segmentation-driven 6D Object Pose Estimation

主要内容我们的方法证明了通过结合多个局部预测 而不是单一的全局预测 可以获得更稳健的位姿估计。为此,我们引入了一种分割驱动的6D姿态估计网络,在该网络中,每个可见对象补丁以 预测 预先定义的3D关键点 的二维投影的形式 对其所属对象做出姿态估计。通过使用同样由我们的网络预测的置信度值,我们为每个3D关键点组合最可靠的2D投影,从而产生一组稳健的3D- 2D对应。然后,我们使用基于ransac 的PnP策略来推断每个对象的一个可靠姿态。我们的架构有两个流:一个用于对象分割,另一个用于返回 2D关键

2021-09-02 20:50:50 1456

原创 论文小结:YOLO6D(Tekin)

主要内容将每个物体的3D模型用9个控制点表示,分别是外切包围盒的8个顶点以及3D模型的重心;算法输入为一个单幅完整的彩色图像,如图1(b);使用图1(a)的卷积网络将图像划分成SxS的Cell,如图1(c);网络的输出结果用SxSxD的张量表示,如图1(e),D的维度为(9x2+C+1),分别包含了9个2D投影点坐标(xi,yi) ,C个类别概率,以及一个置信值。如果某一个Cell的置信值较低,则删除该Cell。可视化结果如图1(d)。9个2D投影点坐标说明:网络需要预测的9个点的坐标,包括8个

2021-09-02 20:41:06 1688

原创 OpenCV(C++) 入门示例 - 传统方法目标检测

运行环境:Windows + OpenCV 3.4.1 + C++项目目标:我们对工件进行检测,目标是识别出工件二维 bounding box,以及获取工件的中心点像素坐标和旋转角度。效果如下:原图效果图代码如下:#include<opencv2\opencv.hpp>#include<iostream&g........

2021-07-22 21:30:25 4777 1

原创 conda 虚拟环境常用操作

虚拟环境的创建、激活、退出、删除等常用操作

2021-07-18 11:37:19 6433 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除