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