【发布时间】:2016-10-19 19:51:30
【问题描述】:
我在 IE11 下的页面上遇到问题,导致页面崩溃。有问题的代码本质上是从服务器动态获取一个字符串,用它初始化一个变量,然后将它用作对象键。为了使问题易于理解,我编写了一个小脚本:
var bar = "b";
var foo = {[bar]: "Orson oson a borsos borsós fosos koros boros korsón"};
这在 Chrome、FireFox 和 Microsoft Edge 下都适用,但在 IE11 下,我收到以下错误:
预期的标识符、字符串或数字
为什么 IE11 不允许这样做,我应该如何解决这个问题?
【问题讨论】:
-
可能代码与
ES6或ES7有关。试试var bar = "b", foo = {}; foo[bar] = "Orson oson a borsos borsós fosos koros boros korsón"; -
@Mr_Green,这行得通,但我想知道我的代码引发错误的原因。
-
IE11 支持
ES5,但不支持ES6或ES7等新版本。在ES5中,您不能将变量放在对象的键中。因此,错误。 -
也许我不明白你要做什么,但为什么不直接做
key = String([bar])然后使用key? -
@Ness,这不会有语法错误,但如果你 console.log(foo);你会看到它有一个不应该存在的名为 key 的成员,并且不存在应该存在的名为 b 的成员。
标签: javascript internet-explorer-11