虽然在控制台中未定义,但setInterval中的javascript变量会在警告框中显示其值
Though undefined in console, javascript variable within setInterval shows its value on alert box
javascript代码段:
<script type="text/javascript">
$(document).ready(function() {
setInterval(function() {
$.getJSON('notif.php', function(data) {
my_var = '123';
});
alert("my var =" + my_var);
}, 2000);
});
</script>
在chrome和FF控制台中,my_var显示为未定义,但其值显示在alertbox上。如果未定义,那么它的val 如何
解释是什么?
asynch
调用,因此alert("my var =" + my_var);
将在不等待ajax调用响应的情况下执行。
将警报移动到类似的回调函数中
setInterval(function() {
$.getJSON('notif.php', function(data) {
my_var = '123';
alert("my var =" + my_var);
});
}, 2000);
变量范围是您要查找的主题。
变量my_var只存在于ajax成功调用的闭包的范围中。
如果你想在更高的级别上定义my_var,比如:
$(document).ready(function(){
var my_var;
...
你可以在你的控制台上看到它。
Javascript变量声明:
var foo; //sets foo to undefined
console.log(foo) //-> undefined
foo = "bar" //sets foo's value to "bar"
console.log(foo) //-> "bar"
var foo = "bar"; //sets foo to undefined initially, then changes it's value to "bar"
console.log(foo) //-> "bar"
所以在您的情况下:
CCD_ 3总是具有值CCD_。
相关文章:
- 此变量的 typedef 不会生成警告
- JSHint是否可以输出有关全局变量的警告
- 处理循环变量的重复声明警告
- 在MVC3中;关闭条件编译“;将Model变量输出到JavaScript时发出警告
- 如何抑制“;警告-重新声明的变量:“;在闭包编译器中
- 虽然在控制台中未定义,但setInterval中的javascript变量会在警告框中显示其值
- 在Javascript Jquery中警告变量时,没有更新文本字段错误中的值
- JQuery变量只有在收到警告时才会工作
- 如何在jquery变量上显示警告消息
- 是否有任何方法可以让mocha.js html报告器显示的错误信息保存到变量并警告到其他php文件
- 是否有一种方法来沉默JSHint's "变量已经定义"警告
- 警告:将此与前面的'var'语句",而所述变量位于for循环之后
- 警告在asp.net中不显示异常变量
- JSHint Eclipse插件预定义变量抛出未定义警告
- 所以我使用一个全局变量,为什么这段代码返回一个'undefined'的警告
- 使用foo变量警告bar变量的内容
- 如何在鼠标悬停时显示传递变量的警告
- PHP用户警告用break例程更改$_SESSION变量
- 错误的JSHint警告“;变量已定义,但从未使用过&”;
- 可能是虚假的 JSLint 未使用的变量警告