-
let 命令
-
作用
- 用于声明变量。其用法类似于var,但是所声明的变量只在let命令所在的代码块内有效
-
特点
- 在块作用域内有效
- 不能重复声明
- 不会预处理, 不存在提升
-
应用
- 循环遍历加监听
- 使用let取代var是趋势
-
案例
//案例1:不会预处理, 不存在提升 console.log(age);// age is not defined let age = 12; //案例2:不能重复声明 let age = 12; //let age = 13;不能重复声明 //案例3:块作用域内有效 { let a = 10; var b = 1; } console.log(a); //ReferenceError: a is not defined. console.log(b); //1 function fl(){ let n = 5; if(true){ let n = 10; } console.log(n); // 5 } //案例4:循环的计数器 //之前使用var 定义变量 i var a = []; for (var i = O; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); //10 //使用let定义变量 i var a = []; for (let = O; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); //6
-
-
const 命令
-
作用
- const 声明一个只读的常量。一旦声明,常量的值就不能改变
- const 一旦声明常量,就必须立即初始化,不能留到以后赋值
-
特点
- 不能修改
- 其它特点同let
-
应用
- 保存不用改变的数据
-
案例
//案例1:不能修改 const PI = 3.1415; PI //3.1415 PI = 3;//TypeError: Assignment to constant variable. //案例2: const 一旦声明常量,就必须立即初始化,不能留到以后赋值 const foo;//II SyntaxError : Missing initializer in const declaration //案例3:const的作用域与let 命令相同:只在声明所在的块级作用域内有效 if (true) { const MAX = 5; } MAX //Uncaught ReferenceError: MAX is not defined
-
补充:const 实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。
const foo = {}; //为foo 添加一个属性,可以成功 foe.prop = 123; f.prop //123 //将foo 指向另一个对象,就会报错 foo = {}; //TypeError:”foo” is read-only
-
ES6之 let和const关键字(一)
最新推荐文章于 2022-07-08 17:01:13 发布