ES6—let变量声明及声明特性
let 用来声明变量 作用和 var 一样
但是声明变量具有一些特性
let 声明格式
let a;
let b,c,d;
let e=100;
let f=111,g=222,h=[];
let 具有的特性:
1.变量不能重复声明 但是 var 可以重复
作用就是防止变量污染
let star='张涵';
let star='小阿涵';
2.块级作用域 在ES5中 有三种作用域 全局 函数 eval(在ES5的严格模式中才会拥有)
ES6中let声明的变量就是块级作用域
块级作用域就是指 变量只在代码块里面有效 代码块外无效
块级作用域并不是单纯的写花括号 同样包括if else while for的花括号 如果用 let 声明的话也是块级作用域
{
let boy='小张';
}
console.log(boy);
var 没有块级作用域 会自动往全局的window属性去添加这个属性
{
var boy='小张';
}
console.log(boy);
3.不存在变量提升 代码在执行前 会先去收集变量 用 var 函数function() var声明变量 函数提前声明
对于var声明的变量还赋予一个初始值undefined
console.log(song);
var song='花海';
如果使用let则不会
console.log(song);
let song='花海';
4.不影响作用域链
{
let school='清华';
function fn(){
console.log(school);
}
fn();
}