chr*_*ngs 3 javascript youtube json youtube-api
我一直在使用Youtube json api进行新的混搭.
在响应的某处,您可以找到以下内容:
{
"player":
{
"default":"http://www.youtube.com/watch?v\u003deH5Iysm417U"
}
}
Run Code Online (Sandbox Code Playgroud)
我一直学会不使用ECMAScript标准的保留字部分中提到的任何词作为标识符.所以据我所知,不允许使用名称"default"作为属性名称.为什么Youtube这样做?
player.default
Run Code Online (Sandbox Code Playgroud)
说实话,上面的代码在浏览器中工作正常.但是我不得不将其更改为下面的代码,以便在使用Google闭包编译器时没有编译错误.
player["default"]
Run Code Online (Sandbox Code Playgroud)
这只是感觉不对.
这里最重要的问题是,我可以做些什么吗?
一个Identifier与a不一样PropertyName.
PropertyName只需不是 没有引号声明时包括保留字.当用引号声明时,所有字符串都是有效的,甚至是有效的" ".
以下是有效作品列表:
PropertyName :
Identifier
StringLiteral
NumericLiteral
Run Code Online (Sandbox Code Playgroud)
你不能改变Youtube的响应,尽管没有任何问题player.default,如果你想在闭包编译器中避免这个错误,你只需要使用[]访问器.
但实际上,这是编译器的错误,而不是javascript.