认识es6中的let
1.声明变量
1.let可以声明多个变量
2.变量不可以重复声明
3.let可以防止变量污染
例:
Document
运行之后代码会报错:Uncaught SyntaxError: Identifier 'star' has already been declared(标识符“星号”已经声明)
2.作用域
let声明的变量是一个块级作用域(只限于在代码块里面可以有效读取):
如上图:
{let girl = '刘亦菲';
}
console.log(girl);
运行之后代码会报错:Uncaught ReferenceError: girl is not defined(未定义)
{var girl = '刘亦菲';
}
console.log(girl);
把 let 变为 var
运行之后代码输出:刘亦菲
总结:因为 let 是一个块级作用域,它只有在代码块中才可以读到。而 var 不是一个块级作用域,它会往全局的window中添加这个属性
3.不存在变量提升
console.log(song);
let song = '仙剑奇侠传';
运行之后代码报错:Cannot access 'song' before initialization(在初始化之前无法访问到song)
4.不影响作用域链
{let school = '985';function fn(){console.log(school);}fn();
}
运行之后代码输出:985
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
