let和const
2023-12-02 03:27:57
ES6新增了let取代var,let主要有以下特点。
1 只在代码块内有效,代码块外不能使用let声明的变量。let很适合声明循环体的变量。
它可以解决一些闭包的问题存在的问题比如:
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 10
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 6
2 不存在变量提升 。
3 暂时性死区
从进入某个块级作用域开始到用let声明一个变量这个区间内属于该变量的暂时性死区,也叫TDZ。
const与let类似有以下特点
只在代码块内有效,const声明的变量不能提升,存在TDN
const声明一个只读的常量。一旦声明,常量的值就不能改变。倒是可以为它添加属性,const一旦声明变量,就必须立即初始化。它本质上就是一个指针指向一块内存,你能改变它指向的内存中的数据,但是不能改变它的指向。
6种声明变量的方法 let const import class var function 其中前四种是ES6新增的。
let const 声明的全局变量不属于window属性
最新文章
- 理解Docker(6):若干企业生产环境中的容器网络方案
- 自己实现多线程的socket,socketserver源码剖析
- LINQ之路 3:C# 3.0的语言功能(下)
- [转]Windows的窗口刷新机制
- mysql_DML_insert
- DevExpress的GridView设置特定行的样式
- Android ImageView 点击更换头像
- HDFS追本溯源:HDFS操作的逻辑流程与源码解析
- C# 最全的文件工具类FileHelper
- Oracle exp和expdp对数据进行备份
- perceptual loss
- 使用PrerenderSpaPlugin预渲染插件没有成功渲染
- git常用操作记录
- 批量kill java进程方法-引出子shell和反引用
- 【BFS宽度优先搜索】
- servlet 3.1 摘录
- spring + mybatis 存取clob
- 如何让其他机器访问你的oracle数据库
- MySQL+Navicat for MySQL安装
- 用Python开始机器学习(3:数据拟合与广义线性回归)