![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
es6
biu-biu-biu
一只有自己小花园的程序猿.
展开
-
let、const优势之道
.不存在变量提升:如果变量提升,内层变量覆盖外层相同变量,所以es6不允许这种情况,es5提示undefined、es6直接报错.暂时性死区,绑定变量于相应块级作用域内、外部相同变量的声明无法修改作用域内变量.不允许重复性声明.es5只有函数作用域和全局作用域,没有块级作用域 。为什么需要块级作用域,可以确保数据的回收,不会将子作用域的变量暴露于外层作用域中.es6明确规定块级作用域内可以声...原创 2018-05-02 22:53:00 · 701 阅读 · 0 评论 -
变量的解构赋值
.数组的解构赋值 。解构不成功,相应变量的值为undefined 。等号右边不是数组,则会报错,let [foo] = 1;let [foo] = false;let [foo] = NaN;let [foo] = undefined;let [foo] = null;let [foo] = {}; 。es6内部使用严格相等运算符(===),当数组元素严格相等于unde...原创 2018-05-03 00:56:30 · 137 阅读 · 0 评论 -
数值的扩展
重点:数值精度.Number.isFinite()、Number.isNaN();这两者参数类型一定要为数值类型,传统的是先通过Number()将非数值变量转化为数值变量再计算的.记住一个功能点减少全局性方法,使语言逐步模块化.js内部对整数和浮点数采用相同储存方法,所以3.0 === 3.js的数值精度最多可以达到53个二进制位,超出范围的数会直接忽略掉,如Number.isInteger()是...原创 2018-05-09 20:04:10 · 161 阅读 · 0 评论 -
对象扩展
.属性和方法的简洁表示.属性名表达式,es6中属性名也可以作为一个表达式来动态展示,如let a = 'a d'; let obj = {[a]: 111}; // {a d: 111}注意,属性名表达式如果是一个对象,默认情况下会自动将对象转为字符串[object Object],这一点要特别小心。const keyA = {a: 1};const keyB = {b: 2};const ...原创 2018-05-09 21:45:17 · 230 阅读 · 0 评论