摘要: 1、块级作用域和不再具备变量提升 2、let 和 const的使用 let:声明变量(一个值会被改变的变量) const:声明常量(一个值不会被改变的变量) 当值为基础数据类型时,那么这里的值,就是指值本身。而当值对应的为引用数据类型时,那么我这里说的值,则表示指向该对象的引用。这里需要注意,正因为 阅读全文
posted @ 2017-11-09 17:33 伊优 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 1、变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分。 之所以会是以上的打印结果,是由于js的变量提升,实际上上面的代码是按照以下来执行的: 2、函数提升 js中创建函数有 阅读全文
posted @ 2017-11-09 15:58 伊优 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 当调用一个函数时(激活),一个新的执行上下文就会被创建,而一个执行上下文的生命周期可以分为两个阶段。 1.创建阶段,在这个阶段中,执行上下文会分别创建变量对象,建立作用域链,以及确定this的指向 2.代码执行的阶段,创建完成之后,就会开始执行代码,这个时候,会变成变量赋值,函数引用,以及执行其他代 阅读全文
posted @ 2017-11-09 14:29 伊优 阅读(184) 评论(0) 推荐(0) 编辑
摘要: javascript中实现异步编程的四种方式。分别是1.回调函数 2.事件监听 3.发布、订阅事件 4.promise对象 Promises对象是在CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口。现已在ECMAScript2015(ES6)中实现。 Promise 对象用于延迟( 阅读全文
posted @ 2017-11-09 11:51 伊优 阅读(310) 评论(0) 推荐(0) 编辑