相关疑难解决方法(0)

setTimeout()与字符串或(匿名)函数引用?speedwise

这两种方式中哪一种更快,为什么?

window.setTimeout("func()", 100);
Run Code Online (Sandbox Code Playgroud)

要么

window.setTimeout(function(){func();}, 100);
Run Code Online (Sandbox Code Playgroud)

我猜的第二个方法是比约翰Resig的其他没有其他原因,更快,如果所有的忍者们使用它,我猜,因为它已经被解析,而不是它必须创建一个新的解析"的thingie第一种方式".我依稀记得这是人们不喜欢eval()的原因之一.

同时我在这里,在第二个代码snipplet中,是第一个在这种情况下被认为是良好做法的分号?

javascript performance coding-style

16
推荐指数
3
解决办法
7057
查看次数

为什么人们说javascript eval()是邪恶的,但你对setTimeout和setInterval等没有异议?

如果我没有弄错,eval会在给定的字符串中执行有效的代码

eval("alert('hey')");
Run Code Online (Sandbox Code Playgroud)

setTimeout("alert('hey')",1000);
Run Code Online (Sandbox Code Playgroud)

做同样的事情,只有一个计时器.设置超时和eval一样有风险吗?

javascript eval settimeout setinterval

12
推荐指数
1
解决办法
1825
查看次数

eval和setTimeout之间的差异执行字符串代码

我知道,eval并且setTimeout都可以接受字符串作为(第一)参数,我知道我最好不要使用它.我只是好奇为什么会有区别:

!function() {
    var foo = 123;
    eval("alert(foo)");
}();

!function() {
    var foo = 123;
    setTimeout("alert(foo)", 0);
}();
Run Code Online (Sandbox Code Playgroud)

第一个会起作用,第二个会产生错误: foo is not defined

他们如何在幕后执行?

javascript

6
推荐指数
1
解决办法
2425
查看次数