关于全局变量

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

aluckdog

我给你举一个例子吧,例如在一个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高级程序设计》,里面讲的很详细
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript