javascript let和const关键字

let声明的变量只在let命令所在的代码块内有效

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

在ES6之前,javascript只有两种作用域:全局变量和函数内的局部变量

 

块级作用域

使用var关键字声明的变量不具备块级作用域的特性,它在{}外依然能被访问到

ES6可以使用let关键字来实现块级作用域,let声明的变量只在let命令所在的代码块{}内有效,{}外不能访问

 

重新定义变量如果使用var关键字也会重新声明代码块外的变量,使用let关键字可以解决这个问题

 

在函数体内使用var关键字和let关键字的作用域都是局部的

 

在函数体外或代码块外使用var关键字和let关键字的作用域都是全局的,区别在于前者的变量属于window对象,后者不属于window对象

 

在相同的作用域或块级作用域中,不能使用let关键字来重置var/let关键字声明的变量,不能使用var关键字来重置let关键字声明的变量

 

let关键字不同作用域,或不同块级作用域中是可以重新声明赋值的

 

 

const关键字

用于声明一个或多个常量,声明时必须进行初始化(赋值),且初始化后值不可再修改,作用于块级作用域

const定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的

比如:

const cars = ["Saab", "Volvo", "BMW"];
 cars[0] = "Toyota";
 cars.push("Audi");

 

在相同的作用域或块级作用域中,不能使用const关键字来重置var/let/const关键字声明的变量

const关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的

 

变量提升

var关键字定义的变量可以先使用再声明,但是let/const定义的变量需要先声明再使用

 

posted @   树叶本子  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示