我的印象是
setInterval("/*some code*/", time)
相当于
setInterval(function() {
/*some code*/
}, time)
显然不是!请比较以下(完整的 HTML):
<pre id=p><script>n=setInterval("for(n+=7,i=k,P='p.\\n';i-=1/k;P+=P[i%2?(i%2*j-j+n/k^j)&1:2])j=k/i;p.innerHTML=P",k=64)</script>
和
<pre id=p><script>n=setInterval(function() { for(n+=7,i=k,P='p.\\n';i-=1/k;P+=P[i%2?(i%2*j-j+n/k^j)&1:2])j=k/i;p.innerHTML=P },k=64)</script>
这两个动画(第一个取自这里)是不同的。
为什么这两个构造不等价?
答:至少有三个不同
- 变量范围
- 表现
- 字符串字符转义