javascript问题,给您追加80分

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:21:39
谢谢哪位高手给我看看
为什么这种拼接字符串的方式就能实现异步执行呢?
function test(){
for(var i=0;i<5;i++){
setTimeout("alert("+i+")",100);
}
}
test();
我想知道的是为什么用(“+i+”)就能实现异步,不是问setTimeout的工作原理,setTimeout工作原理我知道。也谢谢你们的回答了。我的分也挂出了,谢谢高手们再帮我看看。
我还想请教一个问题var doc=xmlDoc.documentElement;是什么意思,有什么作用啊?

在“”中间表示字符串,如果i放到“”中间就表示字符串了,但是如果我需要一个变量和字符串进行拼接的话改如何实现呢?这里就用到了+
在java中,字符串和变量之间的拼接就要用到+
例如:
int i=0;
String s = "ddddd"+i;
那么s的值就为"ddddd0"
如果我改变i的值为1
那么s的值就随之改变为"ddddd1"
这样就可以实现动态赋值
那么你上面提到的情况也是一样的
"alert("+i+")"
这里alert(在一个“”中,表示字符串,)也在一个“”中表示字符串,而i和“”之间使用了+进行连接,所以i为变量
for循环中,i是从0到5递增,那么就可以实现动态赋值
也就是说到最后的结果为:
"alert("+i+")" -->"alert(0)" ... "alert(4)"
当然,这个并不是什么异步,而是实现了动态赋值而已。

i是作为 字符串直接给alert传值的。
所以
for(var i=0;i<5;i++){
setTimeout("alert("+i+")",100);
}
相当于:
setTimeout("alert(0)",100);
setTimeout("alert(1)",100);
。。。
setTimeout("alert(4)",100);

可以用这个方法动态传参。

你把它改成 1,它也一样的效果,我看不出有什么不同,主要是弹出框影响了效果。而且用个for设置,时间是紧接的,5个对话框之间是没有间隙的。

setTimeout(表达式,n(单位毫秒));
表示每n毫秒,执行