es6语法中新增了 let和const 不再只是有var

1. let的用法

let是用来声明变量的,它和var的用法差不多,但是let所声明的变量只在它的代码块内有效,像for循环里用let会更好点。

var可以在声明变量之前使用,即“变量提升”,但是let不同let不存在变量提示,下面举个列子

var:

{

a=10

var  a

}

let:

{

a=10

let a

}

上面例子中let 的用法会报underfined

let的暂时性死区:

上面代码中,存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后者绑定这个块级作用域,所以在let声明变量前,对tmp赋 值会报错。
      ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量, 就会报错。
      总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)

2.const的用法

const声明一个只读的常量。一旦声明,常量的值就不能改变。

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

上面代码表示,对于const来说,只声明不赋值,就会报错。
  const的作用域与let命令相同:只在声明所在的块级作用域内有效。

const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。
 

上面代码在常量MAX声明之前就调用,结果报错。
 const声明的常量,也与let一样不可重复声明

最新文章

  1. 大型网站提速关键技术(页面静态化,memcached,MySql优化)(二)
  2. 4-printf & scanf函数
  3. Linux下MySQL数据库常用基本操作 一
  4. 手势估计- Hand Pose Estimation
  5. mplayer依赖关系不满足
  6. WebService Ajax调用
  7. Android -- 自定义View小Demo(一)
  8. 在VS2008.Net下使用WPF开发Web应用程序
  9. SQL学习之联结表的使用
  10. CustomSummaryCalculate 用法
  11. Hive 的简单使用及调优参考文档
  12. 不能ssh连接ubuntu linux 服务器 secureCRT不能ssh连接服务器 不能远程ssh连接虚拟机的ubuntu linux
  13. 自己设置 WiFi
  14. 关于我空间那篇名为《JavaScript axError:Unexpected token ILLEGAL 很简单的代码……》的随笔
  15. solr window环境安装配置和管理页面基本使用
  16. python中用修饰器进行异常日志记录
  17. <亲测>CentOS7中使用yum安装Nginx的方法
  18. 敏捷:什么是用户故事(User Story)
  19. Linux装python3
  20. 【LOJ】#2722. 「NOI2018」情报中心

热门文章

  1. ASP.NET请求过程-Module
  2. 利用Python进行数据分析_Pandas_汇总和计算描述统计
  3. image analogies笔记
  4. JS 02 函数
  5. Luogu4022 CTSC2012熟悉的文章(广义后缀自动机+二分答案+动态规划+单调队列)
  6. (十二)Activitivi5之流程控制网关:排他
  7. Visual Studio 最新插件
  8. wstngfw中配置squid
  9. Jmeter5.1——聚合报告参数分析
  10. HTTP参数污染(参数处理图)