当前位置: 首页 > news >正文

ES6学习记录-let和var的区别

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、let声明的变量只在所处的代码块内有效

{
    let a = 10;
    var b = 1;
}
console.log(a);//会报错:a is not defined
console.log(b);//输出1

2、let不存在变量提升,就是说let声明的变量必须先声明再使用

console.log(a);//会报错:a is not defined,因为没有变量提升
console.log(b);//undefined,因为有变量提升,b已存在但未赋值

let a = 10;
let b = 1;

3、let存在暂时性死区(temporal dead zone,TDZ)

如果区块中存在let或者const命令,区块对该命令声明的变量形成封闭作用域。也就是说在let、const命令生命之前,变量都是不可用的。

var temp = 123;
if(true){
    console.log(temp);//输出123
    var temp = 2;
}
if(true){
    console.log(temp); //报错:temp is not defined,存在暂时性死区
    let temp = 2;
}

4、let声明的变量不能重复声明

var a = 123;
var a = 12; //不报错

var b = 123;
let b = 12;//报错

let c = 123;
var c = 12;//报错

let d = 123;
let d = 12;//报错

转载于:https://my.oschina.net/u/2600761/blog/889386

相关文章:

  • Java 集合类 List Set Map 哪些线程安全
  • 安装Python的机器学习包Sklearn 出错解决方法
  • 【干货】机器学习常见算法分类汇总
  • 《Selenium自动化测试指南》目录—导读
  • 一次耐人寻味的SQL优化:除了SQL改写,还要考虑什么?
  • 《HTML5 canvas开发详解(第2版)》——2.2 基本矩形
  • 《推荐系统:技术、评估及高效算法》一1.2 推荐系统的功能
  • 《jQuery Cookbook中文版》——1.11 删除DOM元素
  • 移动App性能测评与优化1.3 新问题的进一步挖掘
  • 《Python自然语言处理》——第1章 语言处理与Python 1.1 语言计算:文本和词汇...
  • 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.5节Android应用程序运行的机制...
  • 《精通软件性能测试与LoadRunner最佳实战》—第2章2.2节性能测试需求分析
  • 《Windows Server 2012活动目录管理实践》——2.5 常见问题
  • 《SQL初学者指南(第2版)》——第2章 基本数据检索
  • 《CCNA学习指南:Cisco网络设备互连(ICND2)(第4版)》——1.1节理解VLAN 和VLAN Trunk 及排除相关故障...
  • [NodeJS] 关于Buffer
  • 【Leetcode】104. 二叉树的最大深度
  • C++类中的特殊成员函数
  • js操作时间(持续更新)
  • learning koa2.x
  • oschina
  • passportjs 源码分析
  • python 装饰器(一)
  • storm drpc实例
  • ucore操作系统实验笔记 - 重新理解中断
  • 闭包,sync使用细节
  • 从tcpdump抓包看TCP/IP协议
  • 多线程 start 和 run 方法到底有什么区别?
  • 关于字符编码你应该知道的事情
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 力扣(LeetCode)21
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 设计模式 开闭原则
  • 微服务核心架构梳理
  • 小李飞刀:SQL题目刷起来!
  • 以太坊客户端Geth命令参数详解
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • #FPGA(基础知识)
  • (09)Hive——CTE 公共表达式
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (70min)字节暑假实习二面(已挂)
  • (Git) gitignore基础使用
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (四)库存超卖案例实战——优化redis分布式锁
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)甲方乙方——赵民谈找工作
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .Net Redis的秒杀Dome和异步执行
  • .net反混淆脱壳工具de4dot的使用