我是javascript的新手,今天我尝试过一个例子,有人可以帮我解释一下原因吗?
所有测试均在Chrome控制台面板上完成:
var greetingHello = "Hello";
var name = prompt("please enter your name");
document.write(greetingHello + " " + name + "<br>");
var name = new Array("name1","name2","name3");
document.write(name[0]);
Run Code Online (Sandbox Code Playgroud)
结果是 n
但是,如果我将第二个"名称"变量从"名称"更改为"myName",并执行myName [0]
结果是"name1"
为什么这么奇怪?
您的问题来自与String 的冲突window.name,当您尝试name在全局命名空间中设置时,您实际上正在调用一个调用toString和的setter ["name1","name2"].toString()[0] === "n".
不同浏览器的此行为可能会有所不同,具体取决于其实现方式var.
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |