【前端入门】JavaScript 语言的下一代标准-ES6

197 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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…