2018-10-18
2018-10-18 本文已影响0人
招摇YY
ECMAScript和JavaScript关系:
ECMAScript是一个国际通过的标准化脚本语言。JavaScript由ECMAScript和DOM、BOM三者组成。可以简单理解为:ECMAScript是JavaScript的语言规范,JavaScript是ECMAScript的实现和扩展。
ES5 只有两种声明变量的方法:var命令和function命令。ES6 除了添加let和const命令,import命令和class命令。ES6 一共有 6 种声明变量的方法。
let命令
1. ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
{
let a = 10;
var b = 5;
a //10
}
a //a is not define
b //5
2. let命令不存在变量提升
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;
// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
3. 暂时性死区(TDZ):在let命令声明变量tmp之前,都属于变量tmp的“死区”。
if (true) {
// TDZ开始
tmp = 'abc'; // ReferenceError
console.log(tmp); // ReferenceError
let tmp; // TDZ结束
console.log(tmp); // undefined
tmp = 123;
console.log(tmp); // 123
}
4. let不允许在相同作用域内,重复声明同一个变量。
function func(arg) {
let arg; // 报错
}
function func(arg) {
{
let arg; // 不报错
}}