这个代码为什么会报错啊

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕然然 2021-09-06 16:58:29

同学你好,因为变量a是在函数中定义的,为局部变量。局部变量是不能在全局作用域中访问的,只能在函数作用域中访问,因此console.log(a)语句在全局作用域中访问不到局部变量a,导致报错,如图

https://img1.sycdn.imooc.com//climg/6135d81e09e86f0311500344.jpg

祝学习愉快!

  • 提问者 球球不一般 #1

    这句话不明白啥意思能给我解释下吗 局部变量是不能在全局作用域中访问的,只能在函数作用域中访问,因此console.log(a)语句在全局作用域中访问不到局部变量a,导致报错,如图

    2021-09-07 14:58:21
  • 好帮手慕然然 回复 提问者 球球不一般 #2

    同学你好,解释如下:

    在这段代码中,直接编写在 script 标签中的代码,都是位于全局作用域中,如:fun函数,console.log(a)语句。而编写在fun函数中的代码,都是位于局部作用域中(也称函数作用域),比如:var a = 10,如图

    https://img1.sycdn.imooc.com//climg/613715c609e3aeb007720368.jpg

    而在函数作用域中声明的变量只能在函数作用域中访问,在函数作用域外(即全局作用域中)是访问不到的,

    如图

    https://img1.sycdn.imooc.com//climg/6137170f0901f00015990539.jpg

    如果变量是在全局作用域中声明的,那么该变量随处可访问(即全局作用域和局部作用域都可访问),如图

    https://img1.sycdn.imooc.com//climg/6137186e093ef76914700549.jpg

    祝学习愉快!

    2021-09-07 15:45:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师