一.let与var 的区别

(1).作用域:

 let什么的变量在块级作用域内有效,而var声明则在全局作用内有效

(2).变量提升:

 let声明的变量不存在变量提升,即一定要在声明之后才能调用,否则就会报错;

 而var声明的变量则是存在变量提升的,即在声明之前也是可以调用的,不过结果值为undefined。

(3).暂时性死区:

只要块级作用域内存在let命令,它声明的变量就绑定在这个区域内,即使在全局里面有同名的变量,也跟这个没关系了,在该作用区域内,使用let声明之前,该变量都不可用。

(4)重复声明:

let声明的变量,在同一作用域内是不允许被重复声明的;

而var声明的变量则可以在同一作用域内被重复声明。

二.块级作用域的作用

(1).解决了es5中内层变量可能覆盖外层变量的问题

(2).避免了循环变量泄漏为全局变量

(3).避免内外层变量互相影响

(4)可以替代立即执行函数表达式

最新文章

  1. python之最强王者(3)——变量,条件、循环语句
  2. 解决UBUNTU update KEY错误的问题
  3. 转载:java程序员如何拿到2万月薪
  4. git和svn
  5. linux线程同步(4)-自旋锁
  6. poj3292-Semi-prime H-numbers(筛法打表)
  7. 足球运动训练心得及经验分析-c语言学习调查
  8. java post 请求
  9. HDU-4614 Vases and Flowers 线段树区间更新
  10. Stbdroid之ShapeDrawable
  11. saiku的源码包Bulid常见问题和jar包
  12. 如何使用mysql命令行
  13. hiveql函数笔记(二)
  14. LeetCode之旅(21)-Swap Nodes in Pairs
  15. python的进程与线程(一)
  16. JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密
  17. Entity Framework入门教程(11)---EF6中的异步查询和异步保存
  18. Python做windows服务
  19. WD Elements 与 time machine
  20. JS弹框

热门文章

  1. ACM学习历程—HDU5666 Segment(数论)
  2. Linux驱动 - select函数介绍
  3. debug的时候出现停在ThreadPoolexecutor.class文件中停留的解决办法
  4. Mina APR传输与串口传输讲解---zhengli
  5. O2O和B2C、C2C的区别
  6. webapi中使用token验证(JWT验证)
  7. 使用SQL Server保存Session状态,实现单点登录
  8. MySessionFactory
  9. ansible for devops读书笔记第一章
  10. Mac系统下MySql下载MySQL5.7及详细安装流程