es6之常/变量
在es5时代声明一个变量或者常量只有var,在es6的时候就出现了变量(let)和常量(const)的具体细分。
1、变量
用let进行声明变量,更严谨更好使。 特点:1、不能进行变量提升 2、不能重复定义同一个变量 3、不能定义函数的参数。 4、块级作用域 `//1、不能重复声明同一个变量名 // var num; // let num = 2; //dentifier 'num' has already been declared // console.log(num); //2、不能定义声明函数参数 // function fn1(age) { // let age = 12; // console.log(age); //Identifier 'age' has already been declared // } // fn1(34); //3、不能进行变量提升 // function fn2() { // console.log(num); // let num = 13; //Cannot access 'num' before initialization // } // fn2(); //4、块级作用域 for (var index = 0; index < 5; index++) { // var num = 25; let num = 26; } console.log(num); //num is not defined`
2、常量
用const进行定义,特殊之处就是不可以修改值。 特点:1、常量声明后需要进行赋值 2、不能进行修改 3、不能进行提升 4、不能重复定义一个常量名 5、块级作用域 //1、常量声明需要赋值 // const num = 1; // const num; //Missing initializer in const declaration // console.log(num); // 2、不能重复定义常量 // const num = 1; // const num = 2; //Identifier 'num' has already been declared // console.log(num); //3、块级作用域 // for (var i = 0; i < 5; i++) { // const num = 2; // } // console.log(num); // num is not defined //4、不能进行提升 // function fn1() { // console.log(num); //Cannot access 'num' before initialization // const num = 2; // } // fn1(); //5、不能修改 // const num = 2; // num = 3; // Assignment to constant variable. // console.log(num);