代码如下, 问题在后面。谢谢了
<script>
var g = "全局变量";
function show(str) {
alert("my site: " + str);
}
setTimeout("show(g);",100); // g是全局变量,函数正确执行
function t() {
var url = "www.xujiwei.cn";
var num = 2;
//setTimeout("alert("+url+")", 3000); // 解析错误,www未定义 1
//setTimeout("alert("+num+")", 3000); // 解析正确,注意与上句对比 2
//setTimeout("show('url');", 2000); // url 3
//setTimeout("show("+ url +");", 2000); // 解析错误,www未定义 4
//setTimeout("show(url);", 2000); // 解析错误,url未定义 5
//setTimeout('"show("+ url +");"', 2000); // 解析错误,url未定义 6
//setTimeout("show('"+ url +"');", 2000); // 正确 7
//setTimeout(function(){show(url);},1000); // 正确 8
}
t();
</script>
我有几个不懂的地方:
1:在原文注释1处(下同),为什么会这样呢?还有为什么要在url前后加‘+’呢?
7:为什么这句就能正确的解释呢?
谢谢了,一个初学者真诚的感谢您了。
<script>
var g = "全局变量";
function show(str) {
alert("my site: " + str);
}
setTimeout("show(g);",100); // g是全局变量,函数正确执行
function t() {
var url = "www.xujiwei.cn";
var num = 2;
//setTimeout("alert("+url+")", 3000); // 解析错误,www未定义 1
//setTimeout("alert("+num+")", 3000); // 解析正确,注意与上句对比 2
//setTimeout("show('url');", 2000); // url 3
//setTimeout("show("+ url +");", 2000); // 解析错误,www未定义 4
//setTimeout("show(url);", 2000); // 解析错误,url未定义 5
//setTimeout('"show("+ url +");"', 2000); // 解析错误,url未定义 6
//setTimeout("show('"+ url +"');", 2000); // 正确 7
//setTimeout(function(){show(url);},1000); // 正确 8
}
t();
</script>
我有几个不懂的地方:
1:在原文注释1处(下同),为什么会这样呢?还有为什么要在url前后加‘+’呢?
7:为什么这句就能正确的解释呢?
谢谢了,一个初学者真诚的感谢您了。
字符串就是 到时候 要执行的语句
函数句柄 就是 到时候 要执行的函数
========
那么
1 的第一个参数是 "alert(" + url + ")" 就是把字符串组成一个语句
alert的正确格式是 alert('xx'),字符串两边要引号
上面 "alert(" + url + ")" 得到的是 alert(www.xujiwei.cn) 显然错误7 拼接出来是 show('www.xujiwei.cn') 是正确的, 字符串两边有引号。
var g = "全局变量";
function show(str) {
alert("my site: " + str);
}
show(g);
function t() {
var url = "www.xujiwei.cn";
var url2 = "www.baidu.com"; var num = 2;
alert(num); //此时弹出的是字符串:"+url+"
alert(url); //此时弹出的是字符串变量url的值:"www.xujiwei.cn"
alert("+url+"); //此时弹出的是字符串:"+url+"
alert(url+" "+url2); //此时弹出的是字符串变量url的值:"www.xujiwei.cn www.baidu.com"
}
t();
</script>
url的类型为String类型,unm的类型为数值类型。
alert()方法是window对象的方法,可以直接调用。alert()放发的参数可以是一个字符串变量,或者是数值变量。按理说你的1,2,3,4,6,7都是没有错的。在Javascript中 +号可以将两个字符串连接起来