Sha*_*Fax 13 javascript variables
让我们说我们有这个代码段:
var name = ["Apples","Oranges","Strawberries"];
console.log(name.length);
Run Code Online (Sandbox Code Playgroud)
这段代码产生了这个奇怪的结果27 !! 问题似乎是使用变量名称作为"名称",它看起来像一个保留关键字.
但任何人都可以解释为什么这种奇怪的行为?
它指window.name的是窗口的名称.
您可以使用窗口的名称来定位超链接,但它通常不是很有用.
更多信息window.name:https://developer.mozilla.org/en-US/docs/Web/API/Window.name
只是测试中铬:你不能阻止var name被window.name,这是一个字符串.无论您将值设置为什么,它都将被转换为字符串,以便它是一个有效的窗口名称.那么,name.length是字符串中的字符数量.最好避免变数或对它们非常小心!
正如我从其他一些评论中看到的那样,如果你是新手,这是一个奇怪的概念.关注的是什么window.name.window.name 是窗口的名称.任何使用它都是命名窗口.
捍卫Chrome的行为是合乎逻辑的:
如果这样var document = 'foo'做了它会做的事情,你会window.document用字符串覆盖- 文档对象.那将是一个很大的问题.name是的属性window就像document且具有使用替代,不应该(而且不能在Chrome).
在全球范围内,当你这样做时var name = ["Apples","Oranges","Strawberries"];,它就是一样的window.name = ["Apples","Oranges","Strawberries"];.
window.name必须是一个字符串,所以它分配["Apples","Oranges","Strawberries"].toString()给它"Apples,Oranges,Strawberries".
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |