javascript中的name属性 我有问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 10:27:50
程序1:
<script>
alert(name);//**居然会弹出一个提示,但第一次是个空的提示,F5刷新后就是此代码段中name的值了
name=1;
name+=1;
alert(name);//这里结果是11
</script>
浏览器是IE6

好,下面替换一下上面的代码:

程序2:
<script>
//alert(x);//这里会提示未定义
x=1;
x+=1;
alert(x);//这里结果是11
</script>

再回到Name这个问题,如果是开始声明name变量
<script>
var name;
alert(name);//提示 Undefined;
name=1;
name+=1;
alert(name);//这里结果是11
</script>

我想知道name在javascript中是什么?
- - 更正 片段2,3最后的弹出结果都是数字2 我复制粘贴时忘了改了

name是window.name,也就是窗口的名字,我写了下面的代码作为index.html:
<html>
<frameset frameborder=1 cols="200,*">
<frame src="left.html" name=leftframe>
<frame src="face.html" name=mainframe>
<frameset></html>

以下面的内容作为left.html:
<script type=text/javascript>
document.writeln(name);
</script>

打开index.html的时候,会在左边看见输出的内容是:
leftframe

你现在应该明白了吧。

补充:
name不是保留字,只是window对象的一个属性,对于脚本里面,所有window的属性和方法都可以省略window的,所以你alert(name)的时候,会把window.name的值显示出来,而且它是字符类型,所有你两次+1的结果会是11,而不是2。

你当然可以自己定义局部变量name,这样你写name就是局部变量,要使用window.name就不能省略window了。

明白了吧。