为什么像这样的数组旁边的字符串文本在javascript中不会抛出语法错误?

为什么像这样的数组旁边的字符串文本在javascript中不会抛出语法错误?,javascript,node.js,syntax,Javascript,Node.js,Syntax,在编码过程中,我犯了一个错误,调用了这样一个函数 someFunction('abc'[someValue]) 我忘记了函数调用中的冒号。 在我发现错误后,我到处玩。 这样的作业也不会引发错误。 a='abc'[someValue] 我认为这里会出现语法错误。有什么解释吗?因为这不是语法错误。引擎认为您试图从该字符串中获取一个字母,因此如果someValue是一个数字,它就可以正常工作 设a=“abc”[0] log(a,“abc”[1])//a,b Javascript中的字符串可以作为对象

在编码过程中,我犯了一个错误,调用了这样一个函数

someFunction('abc'[someValue])

我忘记了函数调用中的冒号。
在我发现错误后,我到处玩。
这样的作业也不会引发错误。
a='abc'[someValue]


我认为这里会出现语法错误。有什么解释吗?

因为这不是语法错误。引擎认为您试图从该字符串中获取一个字母,因此如果
someValue
是一个数字,它就可以正常工作


设a=“abc”[0]
log(a,“abc”[1])//a,b

Javascript中的字符串可以作为对象,因此具有
.length
等属性和
.slice
等方法。因此,对于Javascript中对象的任何属性访问,可以使用点表示法,如中所示:

str.length
[]
语法,如中所示:

str["length"]
或使用变量:

let len = "length";
str[len]
那么,你有什么:

'abc' [someValue]
这就是语法。后跟属性访问的字符串。这是合法的。它尝试使用
someValue
变量中的任何字符串的名称从该对象获取属性


以下是几个工作示例:

//简单属性访问
让prop=“长度”;
控制台日志(“abc”[prop]);
//方法调用

log(“一个晴朗的日子”[“切片”](4,8))
[]
是括号符号,可用于访问索引或其他属性(即:.length、.includes()等)。所以类似这样的东西运行正常:
“abc”[“includes”](“b”)
(为true)