摘要:
<script type="text/javascript"> // 懒加载 // getBoundClientRect 的实现方式 let imgList = [...document.querySelectorAll('img')] let num = imgList.length let lazyLoad = (function (){ let count = 0 return functi 阅读全文
摘要:
<body> 1. 默认值 <script type="text/javascript"> // bad function test(quantity) { const q = quantity || 1; } // good function test(quantity = 1) { ... } 阅读全文
摘要:
beforeCreated阶段 initLifecycle(vm) initEvents(vm) initRender(vm) 此时el, data, 以及页面数据为空 created阶段 initInjections(vm) initState(vm) initProvide(vm) 实例化创建完 阅读全文
摘要:
1. 唯一值 <script type="text/javascript"> // bad // 1. 创建的属性会被 for-in 或 Object.keys() 枚举出来 // 2. 一些库可能在将来会使用同样的方式,这会与你的代码发生冲突 if (element.isMoving) { smo 阅读全文
摘要:
1. 数组去重 <script type="text/javascript"> [...new Set(array)] </script> 2. 条件语句的优化 <script type="text/javascript"> // 根据颜色找出对应的水果 // bad function test(c 阅读全文
摘要:
<div id="item-1">11</div> <div id="item-2">22</div> <script type="text/javascript"> let view = new Proxy({ selected: null, test: null }, { set: functi 阅读全文
摘要:
1.从ES7开始,可以使用指数运算符**作为幂的简写,这比编写Math.pow(2, 3) 更快。 例如:2 ** 4 = 16 2.使用加法运算符+快速转为数字,使用~~也可以变为数字,但会不四舍五入的取整 3.位或运算符,可以用于从整数的末尾删除任意数量的数字。 console.log(1553 阅读全文
摘要:
JavaScript属于静态作用域,即声明的作用域是根据程序正文在编译时就确定的,有时也称为词法作用域。 JavaScript在执行过程中会创造可执行上下文,可执行上下文的词法环境中含有外部词法环境的引用,这样我们就可以通过这个引用 获取外部词法环境的变量、声明等等,这些引用串联起来一直指向全局的词 阅读全文
摘要:
1. 遍历范围 for...of 循环可以使用的范围包括: 数组 Set Map 类数组对象,如 arguments 对象、DOM NodeList 对象 Generator 对象 字符串 2. 优势 ES2015 引入了 for..of 循环,它结合了 forEach 的简洁性和中断循环的能力: 阅读全文
摘要:
ES6 Module和CommonJS模块的区别: CommonJS是对模块的浅拷贝,ES6 Module是对模块的引用,即ES6 Module只存只读,不能改变其值,具体点就是指针指向不能变,类似const import的接口是read-only(只读状态),不能修改其变量值。 即不能修改其变量的 阅读全文