- 博客(46)
- 收藏
- 关注
原创 for循环中用var和let的区别(为什么输出结果会不一样)
可以看到使用let声明的for循环每次执行值都会不断叠加,因为let声明的变量是块级作用域的,不存在变量提升,也不存在重复声明的情况,所以值会改变。可以看到它的输出结果,每次循环输出的均是同一个值,这是因为var是存在变量提升的,实际只执行一次,所以每次输出结果一样。
2022-10-06 20:15:49
527
1
原创 BOM重要知识讲解(系统对话框、history对象、间歇调用和超时调用、防抖和节流)
提示框的用途是提示用户输入消息。该方法返回一个数值ID,表示超时调用,这个超时调用ID是计划执行代码的唯一标识符通过它来取消超时调用。出于安全方面的考虑,开发人员无法得知用户浏览过的URL,不过借由用户访问过的页面列表,同样可以在不知道实际URL的情况下实现后退前进。先声明一个全局变量存储触发事件,每一次触发事件都获取当前时间,然后判断当前时间与上一次触发事件是否超过时间间隔,超过就执行事件处理代码,最后存储本次触发的时间。调用该方法也会返回一个间歇调用ID,该ID可以用户在将来某个时刻取消间歇调用。
2022-10-04 23:35:43
550
原创 Vue中computed(计算属性)、methods和watch(侦听器)的区别
计算属性有依赖缓存,如果值没有变化是不会重新调用计算属性的,也不处理异步请求;监听器监听值的变化,可以执行异步操作,像axios请求,它没有缓存性,只有当当前值变化时才会执行。
2022-09-25 23:41:39
144
原创 Vue中的模板语法(包括{{}}、v-html、v-on、v-bind、{{js表达式}})
这里的v-for是循环遍历的意思,遍历数组和对象的属性值然后通过{{}}将变量值渲染出来。它跟原生js中的innerhtml是一样的,用来解析代码片段或者解析字符串。也可以用@来代替,用来绑定事件。可以用:来代替,用来绑定变量。
2022-09-25 19:32:31
659
原创 Vue中的生命周期(钩子函数)
created是模板渲染成html前就调用,而mounted是渲染完成之后,通常用created会多一点,因为created是先初始化属性值再渲染图表,mounted是页面渲染完成后再对dom节点进行一些操作。定义:生命周期指的是vue实例创建到虚拟DOM产生再到数据绑定、监听数据渲染 ,最后再销毁的过程。可以发现,created和mounted都可以发送异步请求,那么它们有什么区别呢?
2022-09-22 20:23:38
407
1
原创 如何理解Vue中的MVVM?
ViewModel是连接View和的一个纽带,数据模型发生了变化,vm通知视图修改;视图发生了变化,vm通知数据模型进行相对应的修改,它们是一个双向数据进行绑定的过程。从View来看,ViewModel中的。工具会帮我们监测页面上DOM元素的变化,如果有变化,则更改Model中的数据;从Model侧看,当我们更新Model中的数据时,工具会帮我们更新页面中的DOM元素。
2022-09-22 19:15:47
328
原创 Typescript(重点知识)
子类继承父类,子类中方法的签名和父类一样,子类的方法会重写父类的方法,采取就近原则的方式首先,抽象类没有实例化,也就是不能定义实例对象,抽象类存在抽象方法和非抽象方法,只要类里面有抽象方法,它就是抽象类。如果一个类继承了抽象类,那这个类会实现抽象类的所有方法,它也会成为抽象类接口就是抽象到极致的抽象类,如果一个类实现了接口,那么这个类要将接口中所有未实现的方法实现。那么怎么实现一个接口呢?有两种,类实现和对象实现。接口还可以继承,子接口继承父接口所有未实现的方法,ts中还可以进行多继承、多实现。
2022-09-21 23:16:18
532
原创 TypeScript
typescript是javascript的超集,是在javascript的基础上转为强类型(js是弱类型语言),下面介绍一下它的特点。:typescript编译器可以安装在任何操作系统:typescript包含大部分es6中的特性,如箭头函数:类,接口,模块都有:编写代码时就可以发现编译时的错误而不需要运行脚本发现:js是动态类型,而typescript还允许可选的静态类型。
2022-09-20 23:22:48
163
原创 什么是Promise?作用?应用?
Promise是异步编程的一种解决方案,它是一个容器,里面保存着某个未来才结束的事件的结果。语法来说它还是一个对象,获取异步的操作信息,提供统一的API,各种异步操作都可以用同样的方法处理。实例状态任意一个成功 返回的承诺对象状态就是成功。实例状态全部成功 返回的承诺对象状态才是成功。2.resolved(已完成),请求成功后返回的实例对象。3.rejected(已拒绝),请求失败后返回的实例对象。实例状态返回请求先成功得哪一个。第二个参数 代表得请求失败得回调函数。第一个参数 代表请求成功得回调函数。
2022-09-19 23:05:29
333
原创 ES6中的Map集合(它与Object的区别?)
Map类似于集合,是键值对的集合,但“键”不限于字符串,各种类型的值包括对象都可以当作键,Object提供了“字符串-值”的对应,Map提供了“值-值”的对应,需要“键值对”的数据结构时Map比Object合适。一个 Object 有一个原型, 原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。3.Map 中的 key 是有序的。因此,当迭代的时候,一个 Map 对象以插入的顺序返回键值。5.Map是iterable的,可以直接被迭代,而Object需要以某种方式获取它的键才能被迭代。
2022-09-19 19:35:20
304
原创 ES6中的迭代器(Iterator)
迭代器是一种机制,也是一种接口,只要实现了这种接口就可以通过for..of来遍历,任何数据结构部署有Iterator接口都可以完成遍历操作。
2022-09-19 19:09:21
235
原创 什么是跨域?(包括同源策略以及解决跨域问题的方法)
当一个资源去访问另一个不同域名或者同域名不同端口的资源时,发出跨域请求,如果另一个资源不允许访问就会出现跨域问题。跨域指的是浏览器不能执行其它网站的脚本。是由浏览器的同源策略造成的,是浏览器对JavaScript 施加的安全限制。
2022-09-18 23:47:58
224
原创 ES6新增的基本数据类型Symbol
ES6引入的一种新的原始数据类型Symbol,表示独一无二的值。Symbol函数可以接受参数,表示对于这个唯一值的描述。属于基本数据类型,Symbol()函数会返回symbol类型的值。它有三个作用,以下分别介绍,可以通过运行结果查看。
2022-09-18 22:59:24
158
原创 JSON(定义,语法规则,字符串化目的,解析JSON字符串)
JSON(JavaScript Object Notation)是一种用于数据交换的轻量级格式。它基于 JavaScript 语言的一个子集,对象是在 JavaScript 中构建的。
2022-09-18 00:14:32
740
原创 ES6中的解构
解构的定义:从数组或者对象中提取值并对变量进行赋值成为解构,解构时左边的变量就会被赋予对应的值。如果解构不成功,变量的值就等于undefined。
2022-09-17 23:59:35
183
原创 前端中的模块化(包括es6模块化和commonjs模块化)
一个模块包含一个或多个js文件,一个模块中一般还包含一个package.json文件,该文件中包含了模块的配置信息,里面的配置信息有:name 模块名称version 模块版本description 描述信息main 指定模块入口文件type 当type值为module的时候,支持es模块化scripts 脚本,使用' npm run 脚本名'可以调用dependencies 依赖关系devDependencies 环境依赖或测试依赖。
2022-09-17 23:27:42
91
原创 ES6代码转ES5代码
在开发中我们可能会遇到需要将代码进行将版本的处理,这时就需要进行转码的操作,我们将用babel实现ES6代码转成ES5代码。npm init,也可以使用npm init -y,如果使用后者是为了快速初始化项目,因为这里的y指的是yes/no里的y,默认将提问是否需要继续执行下去的环节去掉而直接执行。可以看到初始化项目之后会生成一个package.json的文件。
2022-09-13 23:24:37
4007
原创 JS中的变量提升(var、let、const的区别)
分别说一下它们的特点,var会变量提升,可以重复声明,不具有局部作用域;而let和const都不会变量提升,也不能重复声明,但具有局部作用域,特别需要注意的是,const一般用来声明常量,声明时必须赋值,例如声明数组或者const pi=3.14这种数学常量。变量提升是指js中的变量和函数会在代码编译之前,提升到代码的最前面,前提是使用var声明变量,而使用let或者const变量就不会提升,变量提升时只有声明会被提升,赋值则不会,函数声明提升比变量声明优先级要高。
2022-09-13 18:54:40
602
原创 相对定位、绝对定位、固定定位、粘滞定位、静态定位有什么区别?
2.默认定位元素,无论有没有祖先元素,相对于body定位。3.祖先元素设置了定位,相对于祖先元素定位(就近原则)特点:不脱离文档流 相对于自身在浏览器中的位置定位。特点:1.脱离文档流 原先位置不保留。特点:1.脱离文档流 原先位置不保留。2.相对于浏览器视口区域。2.没有达到阈值前相对定位。特点:1.不脱离文档流。特点:默认文档流定位。达到阈值就是固定定位。
2022-09-12 23:02:18
458
原创 弹性盒或伸缩盒(flex)布局中的水平或者垂直布局
1.首先介绍一下flex布局中的相关属性。其中属性要设置给父元素,开启弹性盒布局使用display:flex,开启之后可以通过设置justify-content来设置主轴对齐方式,align-items设置交叉轴对齐方式,flex布局默认主轴沿着水平方向对齐,交叉轴默认垂直方向对齐2.下面通过代码案例来介绍。
2022-09-07 20:17:04
6285
原创 vue中的data,computed,methods,created,mounted
本文将介绍一下vue的基本结构中各分类的含义以及他们的执行顺序。(包括data,computed,methods,created,mounted)
2022-09-07 19:34:25
5769
原创 关于web/前端存储(cookie,sessionStorage,localStorage),以及拖拽事件
前端存储的问题是在面试中比较容易问到的问题,下面总结一下前端存储的相关知识。首先,分为两大类:cookie和WebStorage。
2022-08-31 22:58:17
120
原创 JS深入理解对象
每个函数都会创建一个prototype属性,这个属性是一个对象,这个对象是通过调用构造函数创建的对象的原型,使用原型对象的好处:在它上面定义的属性和方法可以被对象实例共享。工厂模式是一种创建型模式,简单来说,工厂模式就是创建对象的一种方式。明显看出,我们使用工厂模式来创建对象之后,可以通过封装函数的形式,每当要新增一个人的信息时可以直接调用该函数来创建对象。原型模式也同样有它的问题:它弱化了向构造函数传递初始化参数的能力,会导致所有实例默认都取得相同的属性值,原型的主要问题源于它的共享性。...
2022-08-30 19:57:15
148
原创 数组slice()方法和splice()方法的目的以及区别
slice()不修改原数组,返回原始数组的子集,用于从数组中截取元素 ,而splice()修改原数组,将删除的元素作为数组返回,用于在数组中插入或者修改元素。从原数组中截取一段元素到新的数组中,其格式为arr.slice(start,end),其中所截取的元素不包括end那个元素。用于向数组中添加或者删除元素,并返回被删除的元素,第一个参数表示插入或者删除的数组元素位置,第二个元素表示要删除的元素数。当多个参数时:第一个参数表示截取多少个元素,后面其它元素会添加到截取出来元素的后面。......
2022-08-29 17:17:46
181
原创 什么是JSON及其常见操作
JSON是一种基于文本的数据格式,遵循JavaScript对象语法,当你想通过网络传输数据时它很有用,基本上是.json的文本文件,还有一种是MIME类型的application/json。
2022-08-28 23:46:28
192
原创 数组API中的方法重构(九种方法,包含两个参数情况)
关于数组API中九种方法的重构,包含push、pop、shift、every、filter等
2022-08-26 16:58:12
117
原创 函数中的闭包
闭包是指有权访问另一个函数作用域的变量的函数,它由两部分构成:函数以及创建该函数的环境,而环境又由闭包创建时在作用域中的所有局部变量组成。
2022-08-24 20:02:50
170
原创 JS函数中的call,apply,bind方法
apply也可以传递多个参数,与call不同的是apply传递的第二个参数是数组。调用call方法,第一个参数就是把B添加到哪个环境中,this会指向那个对象。与call和apply不同,bind返回的是一个修改之后的函数。apply方法和call方法类似,也可以改变this指向。使用call还可以传递多个参数。同样bind也可以传递多个参数。
2022-08-24 19:35:24
169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人