为了账号安全,请及时绑定邮箱和手机立即绑定

关于全局变量

关于全局变量

慕森王 2019-05-22 23:25:25
全局变量是不是没有加var,就是全局变量?还是说,如果在上层只要找到了定义过的同名变量,就不成为全局变量了?小白理解的不透彻,请大佬帮忙解答一下functiona(){functionb(){varaaa=2;functionc(){aaa=5;}}}请问这个最内层的aaa=5aaa没加var是不是就马上成为了全局变量,还是说他的父函数声明了,就不是全局变量了?
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

我给你举一个例子吧,例如在一个script标签里,或者是一个js文件中。
vara_1=6//这样的,直接在最外层声明的变量,是全局变量
(functionfn_1(){
vara_2=7//在函数内层声明的变量,是属于这个函数的局部变量
a_3=8//如果在函数作用域内没有用var关键字声明的变量,会被自动声明为全局变量
}())
//上面这段代码中,a_1和a_3是全局变量,a_2是局部变量
还有一种情况是严格模式
//文件开头这样写,会进入严格模式
'usestrict'
vara_1=6
(functionfn_1(){
vara_2=7
a_3=8//同样的代码,在严格模式下这样声明变量会报错,a_3isnotdefined
}())
推荐去看一下《js高级程序设计》,里面讲的很详细
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 379 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信