js function函数里的变量没有用var声明就是全局吗
functionbar(){foo=10;varfoo=11;}可以理解为吗:varfoo=10;functionbar(){varfoo=11;}...
function bar(){
foo = 10;
var foo = 11;
}
可以理解为吗:
var foo = 10;
function bar(){
var foo = 11;
} 展开
foo = 10;
var foo = 11;
}
可以理解为吗:
var foo = 10;
function bar(){
var foo = 11;
} 展开
1个回答
展开全部
不对,在函数中声明的变量是局部变量
追问
我就是想问 在函数内没有用var去声明的变量是否是全局变量
追答
var num = 1;
是在当前域中声明变量. 如果在方法中声明,则为局部变量(local variable);如果是在全局域中声明,则为全局变量。
而 num = 1;
事实上是对属性赋值操作。首先,它会尝试在当前作用域链(如在方法中声明,则当前作用域链代表全局作用域和方法局部作用域etc。。。)中解析 num; 如果在任何当前作用域链中找到num,则会执行对num属性赋值; 如果没有找到num,它才会在全局对象(即当前作用域链的最顶层对象,如window对象)中创造num属性并赋值。
注意!它并不是声明了一个全局变量,而是创建了一个全局对象的属性。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询