ES6 let、const声明变量;
let和const变量声明
let变量声明
- let 声明块级作用域变量,以大括号为块
{
// 块级作用域
let x = 10;
let y = 20;
}
- let 声明的变量不能提前使用,更加严谨
console.log(x);
var x = 10;
console.log(y);// 会报错 y is not defined
let y = 20
- 在相同作用域下使用let声明相同的变量会报错。
function foo(){
let x = 10;
let x = 20;
}
foo();// 会报错 Identifier 'x' has already been declared
- var变量声明会提前执行,但是let不会
let x = 10;
console.log(y);// 会报错 Identifier 'x' has already been declared
console.log(z);// undefined
if(false){
let y = 20;
var z = 30
}
const变量声明
- const 用来声明常量。
- const声明变量必须立即初始化,并且其值不能再改变。
const PI = 3.14
全局对象属性
- var命令和function命令声明的全局变量依旧是全局对象的属性。
- let命令、const命令和class命令声明的全局变量不属于全局对象的属性;
var x = 10;
let y = 20;
console.log(window.x);// 10
console.log(window.y);// undefined