博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js中let和var定义变量的区别
阅读量:5941 次
发布时间:2019-06-19

本文共 1434 字,大约阅读时间需要 4 分钟。

javascript 严格模式

第一次接触let关键字,有一个要非常非常要注意的概念就是” 严格模式”,比如下述的代码运行就会报错:

let hello = 'hello world.';console.log(hello);

错误信息如下:

let hello = 'hello world.';^^^SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode    ...

解决方法就是,在文件头添加” 严格模式”声明:

'use strict';let hello = 'hello world.';console.log(hello);

更多更详细的关于”javascript 严格模式”说明,请参考阮一峰的博客 

let和var关键字的异同

声明后未赋值,表现相同

'use strict';(function() {  var varTest; let letTest; console.log(varTest); //输出undefined console.log(letTest); //输出undefined }());

使用未声明的变量,表现不同:

(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://yemtx.baihongyu.com/

你可能感兴趣的文章
C++中一些类和数据结构的大小的总结
查看>>
mysql开启binlog
查看>>
ctrl + z fg bg
查看>>
工作流引擎Oozie(一):workflow
查看>>
struct框架
查看>>
Deep Learning(深度学习)相关网站
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
Cross-compilation using Clang
查看>>
营销系统--手动补偿
查看>>
图标字体设计
查看>>
【转】Principles of training multi-layer neural network using backpropagation
查看>>
并查集hdu1232
查看>>
改动Androidproject的名称(非Eclipse重命名)
查看>>
tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空...
查看>>
dedecms后台左侧菜单500错误怎么处理
查看>>
Maven配置将war包部署到Tomcat(tomcat7-maven-plugin)
查看>>
Spring MVC学习-------------訪问到静态的文件
查看>>
Unity应用架构设计(11)——一个网络层的构建
查看>>
运行自己的shell脚本
查看>>