javascript学习记录
javascript吧
全部回复
仅看楼主
level 2
KyLin天师 楼主
变量声明三大关键字,var,let,const。
一,var
1.在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量。
我们也可以通过window顶级对象获取变量值。
2,var可以重复声明同一变量,但前者会被后者覆盖掉。
3,var拥有变量提升的特殊性,比如
console.log(a) // undefined
var a = 20
是因为js在编译过程中,会将上述代码编译成下列代码。
var a
console.log(a)
a = 20
4,在函数内部声明会变成局部变量。
二,let
与var相似,但是不能够在同一作用域声明同一变量,并且没有变量提升,还存在块级作用域,var不存在。
三,const
声明一个必须初始化的常量,并且不能够改变值,在复杂数据类型中,它指向的内存地址,其实就是指向实际数据的指针,并不能够保证其数据结构不变。
欢迎大佬来指点,下面的是个人博客
网页链接
2024年02月19日 16点02分 1
level 1
其实真正意义上let也会提升的,提升到当前作用域的顶端。你可以试下:console.log(a); let a = 1; 如果不存在变量提升应该会报错:a未定义,实际上会报错a不能在初始化之前使用
2024年05月13日 09点05分 3
let能够形成暂时性死区,也是因为变量提升,JS是解释执行的,没有提升,形成不了暂时性死区
2024年05月13日 10点05分
1