let 和 var 区别
javascript 严格模式
第一次接触let关键字,有一个要非常非常要注意的概念就是”javascript 严格模式”,比如下述的代码运行就会报错:
《Javascript 严格模式详解》
let和var关键字的异同
声明后未赋值,表现相同
'use strict';(function() {var varTest;let letTest;console.log(varTest); //输出undefinedconsole.log(letTest); //输出undefined }());
使用未声明的变量,表现不同:
(function() {console.log(varTest); //输出undefined(注意要注释掉下面一行才能运行)console.log(letTest); //直接报错:ReferenceError: letTest is not definedvar 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不是同一个变量 }());
转载于:https://www.cnblogs.com/gangerdai/p/9006663.html
let 和 var 区别相关推荐
- let const var 区别详解
let和var区别 一.let不存在变量提升 首先先要了解什么叫变量提升?就是变量声明提前(!注意 不是赋值),var具有这个属性,下面有个小例子: console.log(a) var a='a' ...
- JavaScript中let和var区别详解
想要了解var(ES5)和let(ES6)区别,首先就要了解ES5下JS的变量提升 一.变量提升(声) 当浏览器开辟出供代码执行的栈内存后,代码并没有自上而下立即执行,而是继续做了一些事情:把当前作用 ...
- scala val 与var 区别
一个var和VAL定义在Scala之间的区别是什么? 一之间的区别是什么var和val在Scala中定义和为什么的语言都需要?为什么你会选择val在一个var反之亦然? 1. 正如许multiplay ...
- JavaScript let 与var 区别及var弊端
let,const来源 ES2015 引入了两个重要的 JavaScript 新关键词:let 和 const. 这两个关键字在 JavaScript 中提供了块作用域(Block Scope)变量( ...
- Swift 中 let 和 var 区别
let 是不可变对象,对象首地址不能发生变化,也就是说内存地址不能改变,但也可以修饰可变对象 例: let str:String="aaa" str="bbb" ...
- javascript 声明变量var、let、const详解及示例
1. var.let.const概述 ES6发布前,Javascript只能通过var声明变量的方式,常量.块级变量.函数变量这些概念的差别都不能很好的体现出来,于此同时,加入你要使用或者提供一个ap ...
- lombok 的 val 与 var
lombok 的 val 与 var 一. 含义 val 和 var 是lombok 提供的语法糖,可以进行类型推断的功能. 您可以将val用作局部变量声明的类型,而不是实际编写的类型.执行操作的时候 ...
- JavaScript中的 let 和 var
文章目录 let 和 var let 的诞生 let与var区别 全局作用域 函数作用域 块作用域 let 和var 重新声明 const let 应用场景 let 和 var let 的诞生 在ES ...
- [C#基础知识系列]专题十七:深入理解动态类型
本专题概要: 动态类型介绍 为什么需要动态类型 动态类型的使用 动态类型背后的故事 动态类型的约束 实现动态行为 总结 引言: 终于迎来了我们C# 4中特性了,C# 4主要有两方面的改善--Com 互 ...
最新文章
- 『高级篇』docker之DockerSwarm的集群环境搭建(28)
- .offset().top是什么意思?
- 如何去掉手机php,dedecms怎么关闭手机版
- mongo创建用户和创建数据库
- P359 usestock2.cpp
- 表格过滤器_不用记账软件也可以记录支出明细,这个在线协同表格很方便
- java api class_Java API:Object class
- Linux联网配置-IP 网关 DNS
- numpy构建卷积网络
- Axure 9.0.0.3704 授权码
- excel如何随机抽样
- Spring注解汇总
- 升级mac系统正在计算机,苹果电脑系统更新,能用手机 APP 了,但我不建议你升级...
- android 小屏模式吗,宅在家又嫌手机屏幕小?教你如何玩转投屏
- JAVA中implement和extends的区别?
- 前端工程师到底有哪些晋升和发展方向选择?
- 课上——HTML 表格 学生成绩表
- 【MacBook Pro 2016款 外接 GTX-1080显卡】- 技嘉 AORUS GTX 1080 Gaming Box (附安装参考教程)
- 斥资建造全景分割养猪场,AI 养猪,到底靠不靠谱?
- 求有关计算机的英语科技小短文,带翻译,200字左右,关于计算机的英语小短文,带翻译....
热门文章
- python做马尔科夫模型预测法_隐马尔可夫模型的前向算法和后向算法理解与实现(Python)...
- java 增量编译_java增量构建关于lambda表达式的问题
- hal库开启中断关中断_「正点原子NANO STM32开发板资料连载」第十章 外部中断实验...
- java 扫描包框架_在Android中实现类似Spring的软件包扫描
- python 数组在最前面插入数据_python – 如何将数组插入数据库?
- HDLBits 系列(30)Serial Receiver
- 【 FPGA 】设置输出延迟(Output Delay)
- Java基础-序列化与反序列化
- 5.spring boot使用FastJson解析JSON数据
- 分布式系统数据一致性解决方案