es6学习总结

以下是我es6学习的一部分总结:

let const 和 var之间的区别以及应用场景:

let是ES6新出的命令,用于声明变量,会形成块级作用域,用其声明的变量,只在let命令所在的代码块内有效,并不再受外部的影响;

let不存在变量提升,即变量在声明之前不能使用,这样的设计是为了让大家养成良好的编程习惯,变量一定要在声明之后使用;

let会造成暂时性死区,即一进入到let声明的块级作用域,使用let声明的变量就会认为已经存在,但是由于变量不可提升,只有等到声明变量的那一行代码出现,才可以获取和使用该变量,在声明之前获取使用该变量就会报错

let在相同作用域内,不允许重复声明同一个变量;

const声明一个只读的常量,即用const声明的常量不得改变值,一旦声明变量,就必须立即初始化,不得留到以后赋值

const对于基本数据类型的常量声明,值是不可改变的,但是对于引用数据类型的常量,例如obj 更改某个属性的值,是可以更改的;

如果真的想将obj冻结(属性值也不可改变),可以应使用Object.freeze方法,如果属性值也是一个引用类型数据的话,可以使用递归的方式 ,深层次遍历调用该方法,将obj完全冻结。

ES6 的块级作用域必须有大括号,如果没有大括号,JavaScript 引擎就认为不存在块级作用域。块级作用域的存在可以用来解决 内层变量覆盖外层变量、或者循环计数时的变量泄露为全局变量等问题;

你可能感兴趣的:(es6学习总结)