ES6声明变量

var: 命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined
let : 声明的变量仅在块级作用域内有效
它所声明的变量一定要在声明后使用,否则报错。
const: const的作用域与let命令相同:只在声明所在的块级作用域内有效。
增加、删除属性都可以的:
const b = [{id:1,name:'oliver'},{id:2,name:'oracle'}];
b.length = 0;
b = [{id:1,name:'oliver'}];
重新指向报错:
b = ['Dave'];
如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。
总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)
Object.freeze(obj): 冻结数据
var b = [{id:1,name:'oliver'},{id:2,name:'oracle'}];
Object.freeze(b);
b[0].name = "oliver2";
b[0].name2 = "oliver2"; // b禁止增加或减少,但是可以修改内部属性值
for(let i=0;i<b.length;i++){ object.freeze(b[i])="" }="" 属性值不允许修改<="" div="">
 
ES5声明变量:var、function
ES6生命变量: var、function、let、const、import、class
 
 
posted @ 2022-01-12 10:35  小闫先生  阅读(65)  评论(0)    收藏  举报