笔记
文章平均质量分 72
至尊绝伦
这个作者很懒,什么都没留下…
展开
-
vue3怎么监听页面的滚动
监听滚动的hook原创 2022-10-19 15:39:24 · 10809 阅读 · 1 评论 -
Vue项目使用百度地图api
百度地图API的使用步骤原创 2022-10-19 13:17:46 · 8921 阅读 · 2 评论 -
Git版本控制工具
版本控制能在软件开发中,确保由不同的人编辑同一程序文件能同步。可以帮助程序员进行代码的追踪、维护、控制等操作。使用比较广泛的有三个版本控制工具:CVS、SVN、Git第一个被大规模使用的版本控制工具,诞生于1985年;由荷兰阿姆斯特丹VU大学的Dick Grune教授实现的,也算是SVN的前身(SVN的出现就是为了取代CVS的)。因其命令行工具名为因此通常被简称为SVN;SVN由CollabNet公司于2000年资助并发起开发,目的是取代CVS,对CVS。...............原创 2022-09-01 00:41:12 · 1744 阅读 · 0 评论 -
深拷贝-浅拷贝-引用赋值的写法
这个obj4完全是一个新的对象,修改对象的内容,info的对象内容也不会跟着改变。,拷贝了一个新的对象obj2,修改里面的name,info不会跟着改变。对象的浅拷贝:只是浅层的拷贝,内部引入对象时,依然会相互影响;但是使用JSON方法有很大的缺陷就是当info里面有其他的值时。,将后面的info拷贝到前面的{}对象中,并且返回给obj3。如果有一个对象info,想要拷贝里面的内容,有三种方式。对象的深拷贝:两个对象不再有任何关系,不会相互影响;如果改的是对象,info的对象也会跟着发生变化。.......原创 2022-08-27 11:25:53 · 350 阅读 · 0 评论 -
JavaScript防抖和节流(从认识到理解到手写)
JavaScript是事件驱动的,大量的操作触发事件,加入到事件队列中处理。有一些比较频繁的事件处理就会造成性能损耗,我们就可以通过防抖和节流来限制事件频繁发生,所以防抖和节流也是性能优化的方式之一。前面说明了防抖和节流是用来限制事件频繁发生的,还不清除防抖和节流的概念,下面先来理解概念。原创 2022-08-24 22:22:42 · 1980 阅读 · 10 评论 -
Vue项目的一些细节
如果一个图片想要for循环动态使用,在webpack环境中可以使用。但是如果是在vite环境。原创 2022-08-12 16:11:54 · 292 阅读 · 0 评论 -
Vue创建项目的步骤
可以有两种创建vue的方式,一种是vue CLI脚手架,一种是vite工具。npm更新到最新版本方法 npm install -g npm。检查一下npm和node版本。原创 2022-08-09 17:27:25 · 14258 阅读 · 2 评论 -
Vue学习之认识到应用(三)
vue学习、vue-router、前端路由、vuex、pinia、axios、vue笔记原创 2022-08-03 22:29:42 · 1868 阅读 · 0 评论 -
Vue学习之认识到应用(二)
vue学习、vue组件化、父传子、子传父、通信、插槽slot、具名插槽、作用域插槽provide、inject、setup原创 2022-07-25 11:18:23 · 883 阅读 · 0 评论 -
Vue学习之认识到应用
vue学习、渐进式、options、vue2、vue3、模板语法、组件化开发、脚手架CLI、vue笔记原创 2022-07-11 21:51:41 · 679 阅读 · 0 评论 -
常用的正则表达式语法学习
正则表达式是一种字符串匹配利器,可以帮助我们搜索、获取、替代字符串。它是一种计算机科学的概念,不单单属于某种语言,正则表达式可以在Python、JavaScript、Java等语言中广泛使用。在JavaScript中,正则表达式使用RegExp类来创建,但也有对应的字面量的方式:正则表达式主要由两部分组成:模式(patterns)和修饰符(flags)......原创 2022-07-07 16:07:35 · 1011 阅读 · 0 评论 -
LocalStorage和SessionStorage
WebStorage主要提供了一种机制,可以让浏览器提供一种比cookie更直观的key、value存储方式:localStorage和sessionStorage的区别原创 2022-07-06 16:21:02 · 893 阅读 · 0 评论 -
事件队列、微任务与宏任务的理解和面试题
事件队列是一种数据结构,可以存放要执行的任务。它符合队列"先进先出"的特点。事件循环中并非只维护着一个队列,事实上是有两个队列:事件循环对于两个队列的优先级是怎么样的?1.main script中的代码优先执行;2.在执行任何一个宏任务之前(不是队列,是一个宏任务),都会先查看微任务队列中是否有任务需要执行 也就是宏任务执行之前,必须保证宏任务队列是空的; 如果不为空,那么就优先执行微任务队列中的任务(回调);Promise面试题一promise async await面试原创 2022-06-30 17:05:10 · 665 阅读 · 0 评论 -
await和async
用于声明一个异步函数:async是asynchronous单词的缩写,异步、非同步;sync是synchronous单词的缩写,同步、同时;async异步函数有很多种写法:异步函数的内部代码执行过程和普通的函数是一致的,默认情况下也是会被同步执行。异步函数有返回值时,和普通函数会有区别:如果我们在async中抛出了异常,那么程序它并不会像普通函数一样报错,而是会作为Promise的reject来传递;async函数另外一个特殊之处就是可以在它内部使用await关键字,而普通函数中是不可以的。await原创 2022-06-30 15:18:08 · 270 阅读 · 0 评论 -
Promise从认识到使用
我们如果想要调用函数,在这个函数发送网络请求。如果没有Promise,也确实可以自己实现,获取到对应的回调。但是,如果能定义一个标准,给予调用者承诺,可以回调数据。开发者就能使用统一的标准写出相似的代码,减少了学习成本。所以ES6的Promise就是用来解决异步代码的困境的。Promise是一个类,可以翻译成承诺、许诺、期约;当我们需要的时候,可以给予调用者一个承诺:过一段时间后给调用者回调数据。这种情况就可以创建一个Promise的对象;.........原创 2022-06-28 15:36:34 · 170 阅读 · 0 评论 -
Proxy-Reflect使用详解
如果你只是想作为一个普通的开发者,对这两个的理解可以不那么透彻,但是你想作为框架或组件的开发者,就需要对其有比较深的认识了。现在有一个需求:有一个对象,我们希望监听这个对象中的属性被设置或获取的过程。我们可以通过Object.defineProperty的存储属性描述符来对属性的操作进行监听。实际上vue2的响应式原理和这个类似。这样做的缺点:所以ES6中新增了一个Proxy类。............原创 2022-06-26 11:48:44 · 381 阅读 · 1 评论 -
JavaScript中Map的使用
ES6另外一个新增的数据结构是Map,用于存储映射关系。我们在ES6之前就可以用对象来存储映射关系了,那还需要Map吗?创建了一个Map对象,使用set将对象obj1作为key,用get获取obj1对应的value。Map的常见方法Map常见的属性Map常见的方法:Map也可以通过for of进行遍历。和Map类型的另外一个数据结构称之为WeakMap,也是以键值对的形式存在的。那么和Map有什么区别呢?WeakMap常见的方法有四个:...原创 2022-06-26 10:47:25 · 5668 阅读 · 0 评论 -
JavaScript中Set的使用
在ES6之前,我们主要使用数组、对象来存储数据;在ES6中新增了另外两种数据结构:Set、Map和WeakSet、WeakMap。Set有点类似于Array数组,但是和数组的区别是Set的元素不能重复。先不考虑Set的创建方法,通过案例来演示Set和Array数组的区别。我们需要通过Set的构造函数创建Set(没有字面量创建的方式)...............原创 2022-06-11 17:32:36 · 9856 阅读 · 2 评论 -
Symbol的基本使用
Symbol是一种通过Symbol函数来生成的独一无二的值,可以作为对象属性名。在ES6之前,对象的属性都是字符串,在ES6添加了Symbol的基本数据类型之后,就可以使用Symbol作为对象的属性值了。在ES6之前,对象的属性名都是字符串形式,很容易造成属性名的冲突;比如原来有一个对象,我们希望在其中添加一个新的属性和值,但是我们在不确定它原来内部有什么内容的情况下,很容易造成冲突,从而覆盖掉它内部的某个属性;Symbol就是为了解决上面的问题,来生成一个独一无二的值。Symbol即使多次创建值,它们也是原创 2022-06-11 15:56:49 · 2658 阅读 · 0 评论 -
JavaScript中展开语法(浅拷贝)
展开语法(Spread syntax): 可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开; 还可以在构造字面量对象时, 将对象表达式按key-value的方式展开;展开运算符的使用场景在函数调用时使用将names数组展开作为参数,在调用foo函数的时候使用。在数组构造时使用将names数组展开作为newNames数组的一部分。在构建对象字面量的时候,也可以使用展开运算符这样算是一种浅拷贝。......原创 2022-06-11 15:20:55 · 251 阅读 · 0 评论 -
JavaScript中函数默认参数和剩余参数
函数默认参数在ES6之前,我们编写的函数参数是没有默认值的,所以我们在编写函数时,如果有下面的需求:ES6之前需要手动编写判断,但在ES6中,我们允许给函数一个默认值。函数剩余参数ES6中引用了rest parameter,可以将不定数量的参数放入到一个数组中: 如果最后一个参数是 ... 为前缀的,那么它会将剩余的参数放到该参数中,并且作为一个数组;那么剩余参数和arguments有什么区别呢?剩余参数必须放到最后一个位置,不然就会报错。...原创 2022-06-09 21:39:11 · 674 阅读 · 0 评论 -
搞懂JavaScript中var和let、const的区别与使用
在ES5中我们声明变量都是使用var关键字,在ES6开始新增了两个关键字let和const。var可以算作是js早期的一个设计缺陷,所以不妨先学习更为先进的用法,再区分它们之前的区别,搞清楚let和const解决了var声明变量的什么痛点。let关键字:const关键字:使用const定义一个常量,如果尝试去修改这个常量的值的话,会报错 但如果修改的是由const定义的引用类型(例如对象),可以修改对象里面的内容 原先的name值的zzz被修改成了qqq在同一个作用域中,使用var定义变原创 2022-06-07 16:58:13 · 2153 阅读 · 2 评论 -
ES6+的新特性
ES6中对对象字面量进行了增强,主要包括下面几部分:属性的简写:Property Shorthand在对象里面赋值,或者在函数返回对象的时候,经常会有a: a的代码出现,可以简写。方法的简写:Method Shorthand一种语法糖写法,更简洁。running是简写之前的,playing是简写之后的。这种写法不同于箭头函数,箭头函数是没有this的,而这种函数的简写是有this的。计算属性名:Computed Property Names可以将key的值作为属性名2.解构Destruct原创 2022-06-07 15:02:06 · 673 阅读 · 0 评论 -
JavaScript ES5中实现继承(对象和函数的原型,实现继承的方式)
JavaScript当中每个对象都有一个特殊的内置属性[[prototype]],这个特殊的对象可以指向另外一个对象。这个对象有什么用呢?怎么获取这个内置属性?所有的函数都有一个prototype的属性(注意不是__proto__)不是因为函数是一个对象,它才有prototype的属性,而是因为它是一个函数,才有这个特殊的属性。 new在内存中创建一个新的对象,这个对象内部的[[prototype]]属性会被赋值未该构造函数的prototype属性。也就意味着我们通过Person构造函数创建出来的所有原创 2022-06-04 20:42:12 · 114 阅读 · 0 评论 -
JavaScript对象的增强知识
对属性操作的控制在之前我们的属性都是直接定义在对象内部,或者直接添加到对象内部的:但是这样来做的时候我们就不能对这个属性进行一些限制:比如这个属性是否是可以通过delete删除的,这个属性是否在for-in遍历的时候被遍历出来呢?如果我们想要对一个属性进行比较精准的操作控制,那么我们就可以使用属性描述符。直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。可接收三个参数:返回值:属性描述符的类型有两种:......原创 2022-06-04 17:47:40 · 197 阅读 · 0 评论 -
JavaScript严格模式
JavaScript历史的局限性所以在ECMAScript5标准中,JavaScript提出了严格模式的概念:严格模式对正常的JavaScript语义进行了一些限制:怎么开启严格模式?严格模式支持粒度话的迁移(可以非常精细控制哪些需要开启严格模式,哪些不需要开启)严格模式可以在文件或者函数开头使用use strict来开启3.严格模式限制JavaScript被设计为新手开发者更容易上手,所以有时候本来错误语法,被认为也是可以正常被解析的;但是这种方式可能给带来留下来安全隐患; 在严格模式下,这种失原创 2022-06-04 16:01:29 · 411 阅读 · 0 评论 -
组合函数概念的理解
组合函数是在JavaScript开发过程中一种对函数的使用技巧、模式:组合函数的封装上面实现的compose函数比较简单,我们需要考虑更加复杂的情况,比如传入了更多的函数,在调用compose函数时,传入了更多参数。...原创 2022-06-04 14:48:11 · 721 阅读 · 0 评论 -
柯里化理解与案例
柯里化也是属于函数式编程里面非常重要的概念;维基百科的解释:总结:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩余的参数;这个过程就称之为柯里化。柯里化是一种函数的转换,将一个函数从可调用的f(a, b, c)转换为可调用的f(a)(b)(c),柯里化不会调用函数,它只是对函数进行转换。也可以使用箭头函数让代码更加简洁......原创 2022-06-04 11:44:52 · 428 阅读 · 0 评论 -
JavaScript纯函数
函数式编程中有一个概念叫纯函数,JavaScript符合函数式编程的范式,所以也有纯函数的概念。纯函数的维基百科定义:副作用(side effect)其实本身是医学的一个概念,比如我们经常说吃什么药是为了治病,可能会产生一些副作用;在计算机科学中,也引用了副作用的概念,表示在执行一个函数时,除了返回函数值之外,还对调用函数产生了附加的影响, 比如修改了全局变量,修改参数或者改变外部的存储; 纯函数在执行的过程中就是不能产生副作用,副作用往往是产生bug的温床。一个对数组操作的两个函数,看一下哪些是纯函数:s原创 2022-06-04 11:02:39 · 284 阅读 · 0 评论 -
JavaScript函数的增强知识(argument、纯函数)
我们知道JavaScript中函数也是对象,那么对象中就可以有属性和方法属性name:一个函数的名称我们可以通过name来访问;属性length:属性length用于返回函数参数的个数:rest参数是不参与参数的个数的;2.认识argumentsarguments是一个对应于传递给函数的参数的类数组对象。arguments转Array在开发中,我们经常需要将arguments转成Array,以便使用数组的一些特性。常见的转化方式1.遍历arguments,添加到一个新数组中。2.调用数原创 2022-06-03 21:57:57 · 226 阅读 · 0 评论 -
JavaScript内存管理
不管什么样的编程语言,在代码的执行过程中都是需要给它分配内存的,有些编程语言需要手动管理内存,某些编程语言可以自动帮助我们管理内存。内存管理的生命周期我们创建的原始值、对象、函数都会占用内存,但是JavaScript不需要手动进行管理,JavaScript引擎会帮助我们处理好。JavaScript会在定义数据时为我们分配内存 内存的大小是有限的,当内存不再需要的时候,我们需要对其进行释放。现代的编程语言都是有自己的垃圾回收机制:GC算法有几种实现方案:...原创 2022-06-03 10:59:07 · 371 阅读 · 0 评论 -
浏览器渲染原理
默认情况下服务器会给浏览器返回index.html文件,所以解析html是所有步骤的开始How Browsers Work: Behind the scenes of modern web browsers - HTML5 Rocks1.解析html构建DOM Tree2.生成css规则在解析的过程中,如果遇到css的link元素,那么会由浏览器负责下载对应的css文件。下载css文件不会影响DOM的解析浏览器下载完css文件后,就会对css文件进行解析,解析出对应的规...原创 2022-05-31 12:06:18 · 98 阅读 · 0 评论 -
this面试题
如果没有学习过this的指向的话,可以简单学习一下。JavaScript中this指向不是很详细,但是大部分的情况都能包括到了,也可以在做题的过程随时复习。this指向规则默认绑定 函数独立调用 this指向window 隐式绑定 通过某个对象进行调用 this指向调用的那个对象 显式绑定 使用call、apply、bind方法进行绑定 this指向绑定的那个对象 new绑定 使用new关键字来调用函数的时候 this指向调用的那个对象 箭头函数没有this 所以会往上层作用域查找.原创 2022-05-30 12:11:02 · 1021 阅读 · 0 评论 -
箭头函数的使用
箭头函数是ES6之后增加的一种编写函数的方法,并且它比函数表达式要更加简洁。箭头函数不会绑定this、arguments属性; 箭头函数不能作为构造函数来使用箭头函数的编写形式()函数的参数 {}函数的执行体nums.forEach((item, index, arr)=>{})箭头函数的编写优化优化一:如果只有一个参数()可以省略nums.forEach(item => {})优化二:如果函数执行体中只有一行代码,那么可以省略大括号并且.原创 2022-05-27 15:05:40 · 373 阅读 · 0 评论 -
JavaScript中this指向
函数在调用时,JavaScript会默认给this绑定一个值; this的绑定和定义的位置(编写的位置没有关系); this的绑定和调用方法以及调用的位置有关系; this是在运行时被绑定的1.默认绑定独立函数调用的情况下,this指向window,例如function foo() { console.log(this); } foo() //window哪怕是多层调用,只要是使用默认调用的方法,this的指向都会是window对象..原创 2022-05-27 11:48:15 · 239 阅读 · 0 评论 -
JSON的基本使用
1.json的由来json是一种重要的数据格式,不是编程语言,一种可以在服务器与客户端之间传输的数据格式。全称是JavaScript Object Notation(JavaScript对象符号)json是由Douglas Crockford构想和设计的一种轻量级资料交换格式,算是Javascript的一个子集 虽然json提出来的时候是主要应用于JavaScript中,但是目前已经独立于编程语言,可以在各个编程语言中使用其他的传输格式XML:在早期的网络传输中主要是使用XML来进行数据原创 2022-05-23 15:19:04 · 278 阅读 · 0 评论 -
JavaScript中的DOM(一)
1.DOM的理解DOM称为文档对象模型(Document Object Model)将页面所有内容表示为可以修改的对象◼浏览器会对我们编写的HTML、CSS进行渲染,同时它又要考虑我们可能会通过JavaScript来对其进行操作: 于是浏览器将我们编写在HTML中的每一个元素(Element)都抽象成了一个个对象; 所有这些对象都可以通过JavaScript来对其进行访问,那么我们就可以通过JavaScript来操作页面; 所以,我们将这个抽象过程称之为 文档对象模型(D原创 2022-05-20 16:21:38 · 956 阅读 · 0 评论 -
JavaScript中String的基本使用与方法
在开发中,经常需要对字符串进行操作,String类提供了属性和方法1.常用的属性lengthlength可以获取字符串的长度var str = "Hello world"console.log(str.length)//在控制台输出长度为112.访问字符串的字符方法一:通过字符串的索引 str[index]var str = "Hello world"console.log(str[0])//输出H方法二:通过 str.charAt(index) 方法var原创 2022-05-16 11:57:51 · 1162 阅读 · 0 评论 -
JavaScript常见内置类(Number和Math)
javaScript的原始类型并非对象类型,理论上是不能获取属性和调用方法的。var message = "hello world" var words = message.split(" ") var length = message.length var num = 2.54432 num = num.toFixed(3)这些原始类型也调用了split方法,为啥也可以正常使用?因为JavaScript为了可以使其可以获取属性和调用方法,对其封装了对应的包装原创 2022-05-16 10:58:32 · 213 阅读 · 0 评论 -
摆渡爬虫代码
# coding=gbk# -*- coding:uft-8 -*-# 百度指数 import requestsimport urllib.parseimport execjsimport time def collect(city, area): # name 想要搜索的关键字 name = '网贷' wordType = 1 # startDate 开始时间 startDate = '2020-01-01' # endDate 结束.原创 2022-05-15 15:40:56 · 142 阅读 · 0 评论