此代码将警告对象a中的所有属性名称。 0,1,2和你好。

Object.prototype.hello = {};

var a = [1,2,3];

for ( var number in a ) {
    alert( number)
}

我的问题是,我可以通过以下语法访问属性hello:

a.hello

但是,为什么我不能进入a.0这应该是等于1是不是阵列decleration打造“不动产”?

我知道我可以通过a [0]和a [“ hello”]访问属性

#1楼 票数:7 已采纳

这是语法限制。 在JavaScript中,标识符不能以数字开头,因此0不是有效的数字。 然后a.0将产生语法错误。

#2楼 票数:3

因为

JavaScript标识符必须以字母,下划线(_)或美元符号($)开头;

#3楼 票数:2

使用语法myArray[index]访问数组中的项目。 点号表示法仅允许您访问其名称为有效标识符的属性,并且数组中某项的索引(即数字)不符合条件。 因此,您必须使用更宽松的括号符号。

#4楼 票数:1

JavaScript标识符不能以数字开头。 您尝试访问的属性是对象内部的标识符。

您可以在https://developer.mozilla.org/zh-CN/docs/JavaScript/Guide/Values、_variables、_and_literals中找到此片段:

变数

您可以将变量用作应用程序中值的符号名称。 变量的名称(称为标识符)符合某些规则。

JavaScript标识符必须以字母,下划线(_)或美元符号($)开头; 后续字符也可以是数字(0-9)。 因为JavaScript区分大小写,所以字母包括字符“ A”至“ Z”(大写)和字符“ a”至“ z”(小写)。

从JavaScript 1.5开始,您可以在标识符中使用ISO 8859-1或Unicode字母,例如å和ü。 您也可以使用\\ uXXXX Unicode转义序列作为标识符中的字符。

合法名称的一些示例是Number_hits,temp99和_name。

  ask by Simon Edström translate from so

未解决问题?本站智能推荐:

4回复

为什么我不能在JavaScript中做array[-1]?

在 Python 中,你可以这样做: 但在 JS 中,你不能: 问题是:为什么? 我知道绕过它的技巧( arr[arr.length-1] ,修改数组原型等),但这不是重点。 我试图理解为什么 EcmaScript 标准中仍然没有将负数组索引解释为从末尾开始的索引,尽管实现一个理解这一点的 JS 引
1回复

在JavaScript中调用array.length的效率

我在javascript中看到的大多数循环示例都在for循环本身中使用array.length属性,如下所示: 但是,有时我看到array.length属性被写入变量,然后在循环中使用变量值,而不是: 来自C#背景,我从不必为此担心。 但是,在Java语言中,第二种方法更有效,为什么?
2回复

JavaScript的Array调用和函数在Prototype中失败

我有这个代码: 我收到这些错误: 无论我想对Array做什么,它只是不断给我访问错误,就好像它在原型中不存在一样。 我究竟做错了什么? :(我只是像原型中的任何其他值一样访问数组)。 对象内的对象有问题吗?
1回复

你能在Javascript的forEach方法中调用for循环吗?

首先,我是一个完全的编码初学者,几周前就开始了,作为一个角色/智力挑战。 我想知道为什么我会在这个简单的脚本中得到一个空数组。 我认为它与var“i”有关,但我找不到错误在哪里。
1回复

为什么JavaScript函数不能在xslt中调用?

我尝试调用javascript函数xslt吗? 为什么不叫它? http://xsltransform.net/gWEamLX 我尝试过这样 我从这里获取参考使用xsl调用用javascript编写的用户定义函数,为什么警报未显示
2回复

如何在javascript中为array.sort调用共享比较函数?

我试图从array.sort调用共享比较器函数来排序2个不同的数组。 如果我有: 和 我怎样才能做到这一点?
1回复

为什么Array中的函数不能在“参数”上工作?

为什么我们不能在arguments上直接从Array调用函数? 更新:如果arguments不是数组对象,那么Array.prototype.slice函数如何在非数组对象上工作?
6回复

为什么Javascript中的“,,,”==Array(4)?

启动解释器/控制台并尝试比较 为什么? 起初我想也许因为你可以把“,,,”想象成一个带有'\\ 0'终止切片的四个字符的数组,这可能就是原因,但是 返回“False”。 所以为什么? 我知道这是Javascript中的一些特殊的鸭子输入,但只是好奇是什么强调了这种行为。 从Zed