javascript——let关键字
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
javascript——let关键字
在ES2015后,引⼊了两个关键字let和const
let关键字
在引⼊let关键字和const之间,JavaScript⾥只有两种作⽤域:全局作⽤域和函数作⽤域,引⼊两个关键字后,提供了块级{}作⽤域
全局作⽤域:
全局(函数外⾯)声明的变量有全局作⽤域(使⽤var声明的),全局变量可以在JavaScript的任何地⽅访问。
函数作⽤域:
局部(函数⾥⾯)声明的变量拥有局部作⽤域(使⽤var声明的),局部变量只可以在被声明的函数内部使⽤。
块级作⽤域:
通过var申明的变量是没有块级作⽤域的,在{}⾥使⽤var声明的变量任然可以在{}外被访问。
使⽤let申明的变量拥有块级作⽤域
块级作⽤域可解决的问题:
(1)重新声明变量
在块级外使⽤var声明⼀个变量,在块级⾥也使⽤var声明同名的变量,会将外部的变量的值也修改了。
在块级外使⽤var声明⼀个变量,在块级⾥也使⽤let声明同名的变量,不会修改外部同名的变量的值。
(2)在函数内声明变量时候,使⽤var和let是相同的效果
(3)在函数外使⽤var和let声明变量都有全局作⽤域
Html中的全局变量:
使⽤JavaScript的情况下,全局作⽤域是JavaScript环境。
在HTML中全局作⽤域是window对象。
通过var关键字定义的全局变量属于window对象,通过let关键字定义的全局变量不属于window对象。
注意:
允许在程序的任何地⽅使⽤var重新声明JavaScript变量。
在相同的作⽤域,或在相同的快中,通过let重新声明⼀个var变量是不允许的。
在相同的作⽤域,或在相同的快中,通过let重新声明⼀个let变量是不允许的。
在相同的作⽤域,或在相同的快中,通过var重新声明⼀个let变量是不允许的。
在不同的作⽤域或者块中,通过let重新声明变量是允许的
通过var声明的变量会被提升到顶端,可以在声明变量之前就使⽤它
通过let声明的变量不会被提升到顶端,在声明它之前就使⽤它会出错。