hey ~ 我是肥阳,后期会持续更新,请记得点赞支持哟
-
let / const 不存在变量提升
变量提升:变量可以在声明之前使用
console.log(a); // undefined
var a = 10;
console.log(b); X 'Cannot access 'a' before initialization'
let b = '10';
console.log(b); X 'Cannot access 'a' before initialization'
const b = '10';
-
let / const 声明已存在的变量会报错
var a = 20;
let a = 18; X 'Uncaught SyntaxError: Identifier 'a' has already been declared'
var a = 20;
const a = 18; X 'Uncaught SyntaxError: Identifier 'a' has already been declared'
-
let / const 不允许重复声明
let a = 'woman';
let a = 'man'; X 'Uncaught SyntaxError: Identifier 'a' has already been declared'
const a = 'woman';
const a = 'man'; X 'Uncaught SyntaxError: Identifier 'a' has already been declared'
-
let 声明的变量只在所在的代码块内有效,在范围外不能使用
{
var a = 1;
}
console.log(a); // 1
{
let a = 10;
console.log(a); // 10
}
console.log(a); // a is not defined
-
const 用来声明一个常量,声明后变量的值不可以更改。且声明变量必须初始化
const a = 2; √
a = 5; X 'Uncaught TypeError: Assignment to constant variable'
const a; X 'Uncaught SyntaxError: Missing initializer in const declaration'
-
const 可以对数组/对象的属性进行操作,但不能把一个 新的数组 / 对象 赋给 原对象 / 数组。
const a = {};
a.age = 10; √ // {age: 10}
a = {}; X 'Uncaught TypeError: Assignment to constant variable.'
const a = [];
a.push('first'); √ // ['first'];
a = []; X 'Uncaught TypeError: Assignment to constant variable.'
另:声明变量有6种方法:
let、 const、 var、 function、 import、 class
详情请前往阮一峰大神的文档地址:es6.ruanyifeng.com/#docs/let