首页 > 代码库 > ES6-let
ES6-let
ES6作为2015年发布的ECMAScript的标准,如今各大游览器对ES6的支持度越来越高,在随着JS的热门度地不断上升,感觉这门语言在不久的未来将会成为一个企业级开发语言。最近正好比较空,学习了一下ES6,先在这里做个笔记,以便之后查阅。
let命令
1.什么是let命令
类似var,用来声明变量
2.为什么需要let命令
ES5有两个作用域:全局作用域和函数作用域。然而没有块级作用域,变量会被污染。
var tmp = new Date(); function f() { console.log(tmp); //由于var命令使得变量提升,这里的tmp变量函数作用域下的tmp,而该作用域下的tmp未赋值。 if (false) { var tmp = ‘hello world‘; } } f(); // undefined
let命令为JS增加了块级作用域
let tmp = 1; function f() { console.log(tmp); if (false) { let tmp = ‘hello world‘; //该tmp存在于if的块级作用域中,不会影响外部的tmp变量 } } f(); //1
3.let与var区别
let不存在变量提升
// var 的情况 console.log(foo); // undefined var foo = 2; // let 的情况 console.log(bar); // ReferenceError let bar = 2;
在块级作用域中存在let命令,在该作用域的变量不会受外部影响
// var 的情况
var tmp = 1; if(true){ console.log(tmp); //1 var tmp = 2; }
// let 的情况
let tmp = 1; if(true){ console.log(tmp); //ReferenceError let tmp = 2; }
let不允许重复声明
// 能重复声明(a=1) var f=function(){ var a = 10; var a = 1; } // 报错 (Uncaught SyntaxError: Identifier ‘a‘ has already been declared) var f=function(){ let a = 10; let a = 1; } // 报错(Uncaught SyntaxError: Identifier ‘a‘ has already been declared) var f=function(){ var a = 10; let a = 1; }
ES6-let
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。