块作用域构造let和const

来自CloudWiki
27.211.20.154讨论2021年1月28日 (四) 06:34的版本 (创建页面,内容为“==let声明== ===原先的写法=== <nowiki>//函数内部 function changeState(flag){ if(flag){ var color = "red"; } else{ console.log(color); //此处可…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

let声明

原先的写法

//函数内部
function changeState(flag){
	if(flag){
		var color = "red";
	}
	else{
		console.log(color);  //此处可以访问变量color,其值为:undefined
		return null;
	}
}
changeState(false);

//块中
{
  var a = 1;
}
console.log("a = " + a);  //此处可以访问变量a,输出:a = 1

//for循环中
for(var i = 0; i < 10; i++){
}
console.log("i = " + i); //此处可以访问变量i,输出:i = 10*/

ES6新写法

//函数内部
function changeState(flag){
	if(flag){
		let color = "red";
	}
	else{
		console.log(color);  //此处不能访问color,报错:color is not defined
		return null;
	}
}
changeState(false);

//块中
{
  let a = 1;
}
console.log("a = " + a);  //此处不能访问变量a,报错:a is not defined

//for循环中
for(let i = 0; i < 10; i++){
}
console.log("i = " + i); //此处不能访问变量i,报错:i is not defined