当对象定义如下时,如何打印出category.uri
的值:
如果我尝试using object[0].category.@uri
,我会收到以下错误:
未捕获的SyntaxError:意外的标记+
如果我在没有@ -sign的情况下尝试,我会得到:
未捕获的TypeError:无法读取undef的属性'uri'
基本上:如果在前面加上at符号时如何读取值?什么是at符号意味着为什么它首先出现在那里? (在这种情况下,我不控制我正在使用的REST-API)
答案 0 :(得分:8)
Javascript有两个对象访问符号(称为member operators):点表示法和方括号表示法。这些是相同的:
document.forms
document['forms']
您始终可以使用方括号表示法,但不能始终使用点表示法。因此,如果您的属性名称不符合标识符规则,则需要使用方括号形式。
object[0].category['@uri']
规则是:
JavaScript标识符必须以字母,下划线(_)或美元符号($)开头;后续字符也可以是数字(0-9)。因为JavaScript区分大小写,所以字母包括字符“A”到“Z”(大写)和字符“a”到“z”(小写)。 (MDN)
答案 1 :(得分:4)
像这样:
object[0].category['@uri']