js中let和var 的区别
1、let一定在严格模式下执行!
2、声明后未赋值,表现相同;
3、使用为声明变量let会报错;
4、重复声明同一个变量let报错;
5、变量作用范围不同,var函数作用域,let块级作用域!
示例代码:
(function() { console.log(varTest); //输出undefined(注意要注释掉下面一行才能运行) console.log(letTest); //直接报错:ReferenceError: letTest is not defined var varTest = "test var OK."; let letTest = "test let OK."; }());
"use strict"; (function() { var varTest = "test var OK."; let letTest = "test let OK."; var varTest = "varTest changed."; let letTest = "letTest changed."; //直接报错:SyntaxError: Identifier "letTest" has already been declared console.log(varTest); //输出varTest changed.(注意要注释掉上面letTest变量的重复声明才能运行) console.log(letTest); }());
"use strict"; (function() { var varTest = "test var OK."; let letTest = "test let OK."; { var varTest = "varTest changed."; let letTest = "letTest changed."; } console.log(varTest); //输出"varTest changed.",内部"{}"中声明的varTest变量覆盖外部的letTest声明 console.log(letTest); //输出"test let OK.",内部"{}"中声明的letTest和外部的letTest不是同一个变量 }());
参考文档:
http://blog.csdn.net/nfer_zhuang/article/details/48781671
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: js中let和var定义变量的区别
- 下一篇: JS中 var 和 let 关键字的区别