js中关于全局变量的问题

代码:function f1( ){x = 10;++x;}f1();console.log(x); //结果是11。代码结束-----在函数内部没有用var声明的变量,不是全局变量吗为什么还会被+1(10+1)?

正是因为是全局变量,它才会被+1啊(在其他函数过程内部也可以改变它的值)。而如果是局部变量,则只能够在作用域范围内有效(包括被修改),在作用域外则是undefined
不过严格来说,在函数内部没有用var声明的变量,其实相当于是给全局对象window添加了一个自定义属性,即window.x,由于window是默认对象可以省略,只用x即可,所以从外观和作用来看可以按全局变量来等同视之。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答