【问题标题】:Using non-ASCII character as JavaScript object key [duplicate]使用非 ASCII 字符作为 JavaScript 对象键 [重复]
【发布时间】:2015-09-04 21:51:36
【问题描述】:

我有以下对象:

var obj = {
  'ア' : 'testing',
  'ダ' : '2015-5-15',
  'ル' : 123,
  'ト' : 'Good'
};

如何通过其非 ASCII 键(在本例中为日文字符)访问值?

肯定不能使用obj.アobj.'ア',这会导致JavaScript 解析错误。

【问题讨论】:

  • 这是 JavaScript 吗?这不是一个正确的 JavaScript 对象:它使用 => 而不是 :
  • obj.ア 在 Chrome 开发者控制台中为我工作..
  • @jasonscript 抱歉,这是一个错字,现已更正。
  • @Blorgbeard 我正在使用 CasperJS。它说 Parse Error ...
  • 如果属性名称是有效的变量名称,您只能使用点表示法。

标签: javascript object


【解决方案1】:

您可以使用属性访问器:

obj['ト']

例子:

var obj = {
  'ア': 'testing',
  'ダ': '2015-5-15',
  'ル': 123,
  'ト': 'Good'
};

console.log(obj['ト']);
> Good

MDN:Property Accessors

【讨论】:

    【解决方案2】:

    这个怎么样:

        <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    </head>
    <body>
        <script language=javascript>
            var obj = {
    'ア':'testing',
    'ダ':'2015-5-15',
    'ル':123,
    'ト':'Good'
    };
    alert(obj.ア);
    </script>
    </body>
    </html>
    

    【讨论】:

    • 谢谢,但这会导致 Casper JS 中的解析错误。
    • 语言属性已弃用多年。并且 CasperJS 的语法与普通的 JS 略有不同。
    【解决方案3】:

    你可以使用下标来引用对象:

    > var obj = {
      'ア' : 'testing',
      'ダ' : '2015-5-15',
      'ル' : 123,
      'ト' : 'Good'
    };
    > undefined
    > obj['ア']
    > "testing"
    

    JavaScript 对象中的对象键和值也不应该用:(冒号)而不是=&gt;(粗逗号)分隔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 2013-06-16
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多