在学习jQuery和Javascript时,我观察到了一个奇怪的行为。当我调用一个在$(.ready)文档内部定义的变量时,从这些标记外部看它似乎是未定义的,即使我将它定义为一个全局变量,例如:
$(document).ready(function() {
myVar = "test";
});
alert(typeof(myVar));
//Results "undefined"如果我在document.ready标记内调用相同的变量,它会按预期工作
$(document).ready(function() {
myVar = "test";
alert(typeof(myVar));
//Results "String"
});即使在使用窗口前缀之后,结果也是相同的。
$(document).ready(function() {
window.myVar = "test";
});
alert(typeof(window.myVar));
//Results "undefined"我理解变量作用域,但为什么即使是全局变量也不能这样工作。我真的很困惑。
发布于 2016-06-15 20:57:48
其他答案是正确的,但还需要注意的是,$(document).ready(...)也会将您的变量隐藏在全局作用域之外。您可以声明变量,然后在函数中更新它
var myVar;
$(document).ready(function() {
myVar = "test";
});
console.log(myVar) // testhttps://stackoverflow.com/questions/37835989
复制相似问题