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;
}
展开
 我来答
耿直还成功丶东风T
2017-04-13 · TA获得超过281个赞
知道答主
回答量:164
采纳率:0%
帮助的人:12.3万
展开全部
不对,在函数中声明的变量是局部变量
追问
我就是想问 在函数内没有用var去声明的变量是否是全局变量
追答
var num = 1;
是在当前域中声明变量. 如果在方法中声明,则为局部变量(local variable);如果是在全局域中声明,则为全局变量。
而 num = 1;
事实上是对属性赋值操作。首先,它会尝试在当前作用域链(如在方法中声明,则当前作用域链代表全局作用域和方法局部作用域etc。。。)中解析 num; 如果在任何当前作用域链中找到num,则会执行对num属性赋值; 如果没有找到num,它才会在全局对象(即当前作用域链的最顶层对象,如window对象)中创造num属性并赋值。
注意!它并不是声明了一个全局变量,而是创建了一个全局对象的属性。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式