随笔分类 - 面试题
v-if 和 v-show 的区别
摘要:v-if能够控制是否生成vnode,也就间接控制了是否生成对应的dom。当v-if为true时,会生成对应的vnode,并生成对应的dom元素;当其为false时,不会生成对应的vnode,自然不会生成任何的dom元素。 v-show始终会生成vnode,也就间接导致了始终生成dom。它只是控制do
Promise
摘要:Promise 有几种状态? 3种,pending、resolved、rejected Promise 的状态是否可变? 不可变 Promise 如何解决回调地狱? then里面可以返回一个Promise,来防止回调地狱。 Promise 有哪些方法? 他们的应用场景是什么? promise.all
isNaN 和 Number.isNaN 函数的区别
摘要:isNaN 和 Number.isNaN 函数的区别 函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。 函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续
js数据类型
摘要:JS数据类型 JS数据类型有两种:基本数据类型,引用类型 基本数据类型(SNBNUS) 字符串string,数字number,布尔boolean,null,undefined,Symbol 引用类型(OAF) 对象Object,数组Array,函数Function。 扩展 NaN是什么类型? Num
Vue监视数据的原理
摘要:1、Vue会监视data中所有层次的数据。 2、如何监测对象中的数据? 通过setter实现监视,且要在new Vue时就传入要检测的数据 (1)对象中后追加的属性,Vue默认不做响应式。 (2)如需给后添加的属性做响应式,要使用如下API Vue.set(target, propertyName/
vue中key有什么作用?(key的内部原理)
摘要:1、虚拟DOM的key的作用: key是虚拟DOM对象的标识,当状态中的数据发生变化时,Vue会根据【新数据】生成【新的虚拟DOM】, 随后Vue进【新虚拟DOM】与【旧虚拟DOM】的差异比较,比较规则如下: 2、对比规则: (1)旧虚拟DOM中找到了与新虚拟DOM相同的key: 若虚拟DOM中内容
数据代理
摘要:数据代理: 定义:通过一个对象代理另一个对象中属性的操作(读写) 假设有A B两个对象,我们操作B来修改A这时候 B对象就是代理 Vue的数据双向绑定 底层其实没那么复杂 面试官也会常常问到数据双向绑定的原理本质上Vue实例代理data对象属性的操作,也就是实例做了一层数据代理什么是数据代理,比如有
JavaScript懒加载
摘要:方法一 通过浏览器提供的InterSectionObserver构造函数,来观察目标与视口是否有交叉,来决定是否让img有src。 使用方法: 1、new 一下并传入一个回调 (当滚动会触发这个回调并会传入观察目标的信息,例如是否交叉、目标源) 2、设置观察目标 // entrys 是一个数组 关于