全局变量是不是没有加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=7a_3=8//同样的代码,在严格模式下这样声明变量会报错,a_3isnotdefined}())推荐去看一下《js高级程序设计》,里面讲的很详细
添加回答
举报
0/150
提交
取消