Javascript - 如何从setInterval()函数中获取变量?

时间:2015-09-03 21:47:27

标签: javascript

我试图从setInterval()函数中获取变量,但它总是说没有定义字符串。代码示例如下:

setInterval(function(){  
var String = "test";  
}, 1);  
console.log(String)

它应该做的是它应该记录"测试"多次进入控制台。但它不起作用。任何帮助或建议?

编辑:它现在有效。正确的代码是

setInterval(function(){
var myString = "test";
console.log(myString);
},1);

4 个答案:

答案 0 :(得分:1)

你的var String在你的函数中,并且console.log正在从你的函数外部发出请求,所以变量超出了console.log的范围。

正确的语法是:

setInterval(function(){
var String = "test";
console.log(String);
},1);

上面的代码确实有效,但是将String重命名为myString就更好了。

答案 1 :(得分:1)

这可以解决你的问题。但请仔细阅读下面的解释来理解。

setInterval(function(){  
    var something = "test";  
    console.log(something)
}, 1);  

所以,基本上你的代码存在两个问题,

1。) var String 将覆盖实际的javascript String对象,但这并不是您获得 undefined <错误的原因/ EM>

2。)您收到错误的原因与Javascript中的本地范围与全局范围有关。在上面的问题中,您在本地函数范围中定义了一个变量,并尝试访问全局范围内的同一个变量。

答案 2 :(得分:0)

我认为使用错误名称变量的问题。 String是类的名称。请改为var myString = 'test'。保持订单相同。应该工作

EDIT 对不起,伙计们,深夜,我的眼睛正在关闭:)。

将您的控制台置于回调中! 而且,不要使用String作为变量!

请点击此处查看您的vars:http://www.javascripter.net/faq/reserved.htm

答案 3 :(得分:0)

正如评论中所提到的,您在错误的范围内定义变量。具体来说,您是在要调用的匿名函数中定义它,因此只能在该函数中引用它。在函数外定义变量将解决您的问题。

{
    "_id" : x,
    "device_model_id": x,
    "device_os_id": x,
    "device_status_id" : x,
}