请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

这个let定义变量的作用域怎么理解?

let 就算在外面定义,也不是全局变量吗?

图片描述

正在回答

2回答

 let 在全局定义,就是全局变量。

0 回复 有任何疑惑可以回复我~
  • 提问者 自驱动 #1
    那fn1执行,this.a 是undefined
    回复 有任何疑惑可以回复我~ 2021-03-07 09:16:53
  • 双越 回复 提问者 自驱动 #2
    不要用 this.a ,直接取 a 就行。在你的代码中,this.a 相当于 window.a 。而这里定义了 let a = 10 它仅仅是全局作用域的变量,并不是 window 的属性,所以 this.a 取不到。
    回复 有任何疑惑可以回复我~ 2021-03-07 14:35:44
  • 提问者 自驱动 #3
    非常感谢老师回答,总结:
    var声明全局,会挂在window,可以用this取,
    let 和 const 声明全局,不会挂载window中,不能用this,挂载Script的块作用域
    回复 有任何疑惑可以回复我~ 2021-03-24 11:16:05
weixin_慕设计4572181 2021-10-24 19:47:21
function fn1(){}
function fn2(){}
var b

let a = 10 //用let声明的a不会在window上创建属性
var  a  =  100 //用var声明实际就是 window.a = 100
fn1() //这里this.a 实际上是window.a
b=20
fn2()


1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信