ES6 LET \CONST - ocean111/oceanblog GitHub Wiki

var a = [];
for ( var i=0;i<10;i++){
a[i] = function(){
console.log(i);
};

}

//新值覆盖旧值,最后输出的最后i

let bar = 2;

//形成封闭式作用域

var tm = 123;
if(true){
tm = 'ajkljfd';
let tm;
}

// let 在这之前 未声明进入暂时性假死状态

// let const 出现变量提升 减少运行时错误

// let 不允许在相同作用域内,重复声明一个变量

function(){
	let a = 10;
}

function(){
	let a = 13;
}

//全局作用域 和 函数作用域 no 块级作用域 变量提升进行覆盖 场景1

var tmp = new Date();

function show  (){
	if(false)
		var tmp = 123;
	}
}

show(); //变量提升 进行覆盖

//场景2

var s = '4545';

for(var i=0;i<s.length;i++){
	console.log(s[i]);
}

//当for遍历 之后 没有消失 泄露成了全局变量.

ES6新增块级作用域 let / var 变量提升覆盖

{let mo = ....}

跨级作用域 and 函数声明

try{
	function f (){}
}catch(e){

}

const 声明一个只读常量,不能改变值

const po = 2525252;

一共存在6种变量,let const var function class import

全局对象的属性 global 对象的属性 全局变量逐步与全局对象 属性脱钩

var a = 1;

// 如果在node的repl环境,可以写成global.a // 或者采用通用的方法 this.a

windwow.a // 1

let b = 1;

window.b // undefined  

//全局对象与全局变量区分开