全局变量是不是没有加var,就是全局变量?
还是说,如果在上层只要找到了定义过的同名变量,就不成为全局变量了?
小白理解的不透彻,请大佬帮忙解答一下
function a(){
function b(){
var aaa = 2;
function c(){
aaa = 5;
}
}
}
请问这个最内层的aaa = 5 aaa 没加var 是不是就马上成为了全局变量 , 还是说他的父函数声明了, 就不是全局变量了?
这个话题……不是一两句说的清楚的。全局变量涉及到
var
、'use strict;
、闭包等很多条件,建议题主好好看一本书,比如犀牛书、《JavaScript 高级程序设计》等。但就问题里的描述来看,c 里面的
aaa
因为处于 b 的闭包中,所以是局部变量,也就是 b 里声明的。