ES6 变量宣告

参考来源:http://es6.ruanyifeng.com/#docs/let

let && const

  • let 和 const 都是 ES6 加入的变量宣告命令.
  • 与 var 不同点在于它们都是块级作用域.
  • const 是一个只读常量,一旦宣告就无法修改.事实上, const 保证的并不是所宣告的值不改变,而是所宣告值得地址不发生改变.
  • let 和 const 不会出现变量提升. 因此 let 宣告的变量不能够在没有宣告的情况下就直接使用.ES5 只有全局作用域和函数作用域,没有块级作用域
if(true){
	var a = 10
	let b = 1
	console.log(a, b)
	// 10, 1
}
console.log(a, b)
// b is undefined
for 循环有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。
for (let i = 0; i < 3; i++) {
  let i = 'abc';
  console.log(i);
}
// abc
// abc
// abc
var tmp = new Date()
function f(){
    console.log(tmp)
    // undefined
    var tmp = 10
}
f()
在 ES5 中, window对象与全域变量是等价的. 在 ES6 进行了改进,var 宣告的对象与全域变量等价,而 let 宣告的则不同.
var a = 12
window.a
//12

let b = 12
window.b
//undefined

猜你喜欢

转载自blog.csdn.net/weixin_44317648/article/details/85989328
今日推荐