携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准。它希望JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言
新增声明变量的命令--let命令
ES6 新增了let命令,用来声明变量,类似于var的效果。注意:只在let命令所在的代码块内有效
例如:
{
let a = 99;
var b = 10;
}
a // ReferenceError: a is not defined.
b // 10
//`let`和`var`声明了两个变量,在代码块之外调用这两个变量
//`let`声明的变量报错,`var`声明的变量返回了正确的值
//这代表了:`let`声明的变量,只在所在的代码块内有效
特别地:同一个作用域不可使用 let 重复声明同一个变量
例如:
for (let i = 0; i < 3; i++) {
let i = 'abc';
console.log(i);
}
// abc
// abc,第二次时,还是一样为abc
//内部的变量`i`与循环变量`i`不在同一个作用域,有各自单独的作用域
暂时性死区
只要块级作用域内存在
let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响
例如:
typeof x; // ReferenceError
let x;
// 在声明之前,都属于`x`的“死区”
//`typeof`运行时就会抛出一个`ReferenceError`
//只要用到该变量就会报错,除非先使用`let`命令声明变量
不允许重复声明
let不允许在相同作用域内,重复声明同一个变量
例如,参考里的例子:
function func(arg) {
let arg;
}
func()
// 报错
function func(arg) {
{
let arg;
}
}
func()
// 不报错
写在最后
更文三十一天啦!感谢大家的支持!我会继续努力坚持学习!养成了好习惯,每天必定会抽出时间多多少少学习前端知识
以上习题&笔记从大佬们的论坛学习而来,特感谢大佬们的知识分享~ (学习技术知识,果然要看大佬们的技术博客,大家有好的推荐也欢迎指引我这个小白哈,感恩!)
附上学习链接,感谢这些大佬出题和解答:wangdoc.com/es6/let.htm…