JavaScript问题:为什么访问不了全局变量?

function demo()
{
$(function(){
kk=416465;
})
alert(kk) //为什么运行后alert()方法无法输出kk呢?kk不是一个全局变量吗
}

alert(kk)为什么访问不了kk=416465;

改成 window.kk = 416465; 就能得到了。

你这个叫“匿名函数调用”,变量本身只在 function(){ ... } 这个范围中有意义。

我们平时在写 JavaScript 时:
kk = 416465; 能访问那也是因为这个变量没有事先声明,就当成是把它定义在全局变量中,也就是相当于 window.kk = 416464;追问

window.kk这样怎么理解??

追答

window.kk 就是全局变量了。
直接写 kk 就只是在当前作用域中的变量,因为你的当前作用域是一个函数,它就只在函数中起作用。

当我们在所有函数的外面写 kk = 614; 则这个作用域就是全局的。

所有的全局变量都被自动地当成是 window 对象的属性值。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-07
kk怎么会是全局变量,你想错了追问

什么全局变量呢?不是不用声明var就可以其他都可以访问了?

相似回答