1、作用域 变量或函数能够起作用的范围 a、全局作用域 b、局部作用域 c、块级作用域 新的ECMAjs中有这个块级作用域(eg:es6) 2、作用域链 遇到函数,函数执行时就会开启一个作用域 ...
分类:
Web程序 时间:
2019-05-03 16:47:30
阅读次数:
150
1.新增了块级作用域(let,const) 2.提供了定义类的语法糖(class) 3.新增了一种基本数据类型(Symbol) 4.新增了变量的解构赋值 5.函数参数允许设置默认值,引入了rest参数,新增了箭头函数。 6.数组新增了一些API,如isArray / from / of 方法;数组实 ...
分类:
其他好文 时间:
2019-05-03 09:57:18
阅读次数:
581
1、变量声明方式 ES6变量声明使用let/const,其中最重要的两个特性: >块级作用域 >不再具备变量提升 ES6 ES5 变量提升: ES5-会存在变量提升,没有块级作用域,它的作用域分为两种:一个是全局作用域,另一个是函数作用域; 具体会在后续执行上下文环境中介绍 ...
分类:
其他好文 时间:
2019-04-27 12:56:21
阅读次数:
127
1.块级作用域: ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。 2.let方式声明变量: es6新增了let命令,用来声明变量。 3.const方式声明变量: const声明一个只读的常量。一旦声明,常量的值就不能改变。 const的作用域与let命令相同:只在声明所 ...
分类:
其他好文 时间:
2019-04-22 13:51:08
阅读次数:
137
一.ES6的特点 1.let(变量),const(常量) 2.在ES6中不能重复定义 3.块级作用域 普通作用域 ES6作用域 //test1打印不出来会出现 //ReferenceError(作用域找不到) 4.箭头函数 箭头函数的基本表达式: 参数 =>表达式/语句 表达式 语句 ...
分类:
其他好文 时间:
2019-04-19 18:03:28
阅读次数:
138
变量作用域要点 在JavaScript中没有块级作用域,只有函数作用域 在函数体内,局部变量的优先级高于同名的全局变量 在全局作用域编写代码时可以不写var语句,但声明局部变量时必须使用var语句 函数作用域是指在函数内声明的所有变量在函数体内始终是可见的,变量在声明之前已经可用JavaScript ...
分类:
编程语言 时间:
2019-04-10 17:53:33
阅读次数:
116
1. 变量提升: 浏览器在运行代码之前会进行预解析,不论var声明的变量处于当前作用域的第几行,都会提升到作用域的头部。 2. 只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。 3. let不允许在相同作用域内,重复声明同一个变量。 var a = 10; let ...
分类:
其他好文 时间:
2019-04-09 09:32:13
阅读次数:
125
还是先从一个题目开始: 写一个隔1s输出数组的一项的函数。 如果可以用ES6语法,则可以这么写: 但是如果把这里的 改成 ,则输出就会变成一连串的 。 有同学很快想到了这是闭包啊,因为 把函数加入到 中,所以等到setTimeout的函数体执行时, 已经走完了 循环,变成了 。`arr[arr.le ...
分类:
其他好文 时间:
2019-03-29 20:52:39
阅读次数:
195
let声明的变量只在它所在的代码块有效。 不存在变量提升 let不允许在相同作用域内,重复声明同一个变量 暂时性死区,只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响, 定义之前不能使用。 应该避免在块级作用域内声明函数。如果确实需要,也应该写成函 ...
分类:
其他好文 时间:
2019-03-25 19:22:05
阅读次数:
174
1、let/const 1)作用域:es5中有全局作用域、函数作用域。es6中新增了块级作用域 2)let定义的变量在所在块级作用域外失效,严格模式下失效后直接报错, 且不允许重复声明同名变量 3)const用于声明常量,声明时必须赋值,也是在块级作用域下有效 2、解构赋值 1) 数组解构赋值 包含 ...
分类:
其他好文 时间:
2019-03-24 19:56:43
阅读次数:
156