新版语法 - let是更好的var ¶
本文导航
作者:KK
发表日期:2018.10.12
要点速读 ¶
你新写的代码都可以只用
let
不用var
了。let 声明的变量作用域更细,比如 if/for/while/switch 的let声明也只能在这些逻辑块里用。
现在你下载第三方模块的代码会发现全世界都已经在用 let 而不用 var,坑少嘛。
正文 ¶
let
完全可以取代var
,它更加严谨,解决了var
带来的陷阱
不能重复声明:
var a = 1; var a = 2; //不报错 let b = 1; let b = 2; //报错,说你已经定义过了变量
作用域更细,出了 if 或出了 for 等这些都没用了
if(111){ let a = 1; } console.log(a); //报错,说a未定义,除非你在if上面就先定义好
for(var key in obj){ var a = 1; } console.log(key, a); //正常 //for(var i = 0; i <= arr.length; i++){ for(let key in obj){ let a = 2 } console.log(key, a); //报错说变量未定义,因为离开了 for 就没它们什么事了,那个 i 也一样
那 while/switch 这些就不废话了。
旧浏览器识别不了怎么办 ¶
搜一下babel
这东西,能把你新语法写的代码自动转换成旧语法,webpack 等构建工具都能配置起来实现自动转换。