我有一个这样的节点:
<meta name="og:description" content="Here's the content" />
Run Code Online (Sandbox Code Playgroud)
我希望能够选择此元素,如果名称是"描述",无论它是否在命名空间中.如果它的名称是"og:description","description","blah:description"等,我需要能够选择元标记.
我已经看到了xpath的资源,它展示了如何在命名空间中进行选择,但不管命名空间如何.
给出这四个定义对象然后尝试立即访问其属性的示例:
{foo: 'bar'}.foo
// syntax error: unexpected_token
Run Code Online (Sandbox Code Playgroud)
我希望这会返回'foo'的值,但会导致语法错误.
我能想到的唯一解释是对象定义尚未执行,因此还不是对象.因此,似乎忽略了对象定义,并且语法错误来自于尝试执行:
.foo
// results in the same syntax error: unexpected_token
Run Code Online (Sandbox Code Playgroud)
同理:
{foo: 'bar'}['foo']
// returns the new Array ['foo']
Run Code Online (Sandbox Code Playgroud)
这似乎证明了对象文字被忽略并且执行了尾随代码.
但是,这些工作正常:
({foo: 'bar'}).foo
// 'bar'
({foo: 'bar'})['foo']
// 'bar'
Run Code Online (Sandbox Code Playgroud)
括号用于运行代码行,并且由于该括号运算符的结果是实例化对象,因此可以访问属性.
那么,为什么忽略对象定义而不立即执行?