es6 day01

es6语法必须加‘use strict’

'use strict' //预解释 变量提升

先看下边例子来感受下let的用法与特点
/*
console.log(a);//undefined 只声明未定义
var a =1;
console.log(a); //1
*
* */
//let 定义变量是没有变量的提前声明(没有预解释)
//console.log(a) // a is not defined 未定义
let a=1;
console.log(a)
//作用域有私有与全局

function fn(){
console.log(b);
let b=0;
}

//fn(); //b is not defined 私有作用域变量没有提前声明
/*
var b=12;
var b=13;
function b(){
console.log(b);
}
console.log(b);//13
b();//b is not a funcition

* */
/*
//let 实现上面的情况 let定义的变量不能重复定义,(包括函数或者变量)都是不能重复定义的
let b=12;
let b=13; //Uncaught SyntaxError: Identifier 'b' has already been declared b已经被声明过了
console.log(b);
*/
//下面这种情况let A=30这一行先报错,而不是console.log(A)先报错, 虽然不进行预解释,但是代码执行上来先将定义的变量,提前过滤一遍,一旦发现不合法的,就直接报错了,代码也不会再继续执行
console.log(A); // A is not defined 未定义
let A=10;
let A=30;//Identifier 'A' has already been declared 不能重复定义

原文地址:https://www.cnblogs.com/h5it/p/9492908.html