ES6新增const常量、let变量
JavaScript 严格模式(use strict)
严格模式下你不能使用未声明的变量。
const c1 = 1; const c2 = {}; const c3 = [];
不能对c1的值进行再次的赋值;
也不能在对c2,c3进行赋值,但是可以改变c2的内容,因为c2是个对象,看例子
c2.p1 = 1; console.log(c2.p1)打印出来结果为1 同样,也可以往c3中添加元素,因为c3是个数组。
const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可随意修改,否则会导致语法错误
例如 const a=1; a=12; 这样会报错
同样 const a=0; a++;在use strict下一样会报错
声明不赋值同样报错,const a; 报错
let a=0; a++;可以被执行; let a=0; a=12;可以被执行
let a=0; let a=12; 报错
有区别于var在于他们存在块级作用于,就是你声明的变量只作用于某个域,比如一个函数,而不是全局,从上面也可以看出let 为变量 const为常量
变量提升
const let class 不支持变量提升 例如 下面 运行 第一个console 输出a是会报错的 var a = 1; function test() { console.log(a); class a {} console.log(a); } test(); // 相当于 window.test()
下面在具体举例说明
1.let声明的变量只在变量声明时所在的代码块内有效
对比: { var url = "www.baidu.com"; } alert(url); //-------------------------------- { let url = "www.baidu.com"; } alert(url);
2.let不允许在同一作用域重复声明变量:
let url = "www.baidu.com"; // 第一次 { let url="www.sina.com.cn"; //第二次
console.log(url);
} // 第一次正确,第二次放到括号里面错误
3.let与全局变量的声明
//错误 let a=3; { var a=5; } alert(a); //正确 var a=3; { let a=5; } alert(a);
4.作用到子作用域
let a=3; { a=5; //子作用域 } alert(a); //弹出5
二、const命令
const命令用来生成一个常量,常量被声明后,值无法改变。其他与let相同。
const一旦定义,无法更改,let定义块级变量,他们都是无法重复声明的,会报错,而var可以覆盖之前的声明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?