将非ASCII字符用作JavaScript对象键

8

我有以下对象:

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

如何使用非ASCII键(在此情况下为日语字符)访问值?

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


2
这是 JavaScript 吗?那不是一个正确的 JavaScript 对象:它使用了 => 而不是 : - jasonscript
2
在Chrome开发者控制台中,obj.ア 对我有效。 - Blorgbeard
@jasonscript 抱歉,那是个打字错误,现在已经更正了。 - Raptor
@Blorgbeard 我正在使用 CasperJS。它显示解析错误... - Raptor
1
如果属性名称是有效的变量名称,您只能使用点表示法。 - Felix Kling
3个回答

8
您可以使用下标引用对象:
> var obj = {
  'ア' : 'testing',
  'ダ' : '2015-5-15',
  'ル' : 123,
  'ト' : 'Good'
};
> undefined
> obj['ア']
> "testing"

请注意,在JavaScript对象中,对象键和值之间使用冒号:而不是箭头符号=>(胖逗号)分隔。


5
您可以使用属性访问器: obj['ト'] 示例:
var obj = {
  'ア': 'testing',
  'ダ': '2015-5-15',
  'ル': 123,
  'ト': 'Good'
};

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

MDN: 属性访问器


-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中导致语法错误。 - Raptor
语言属性已经过时多年了。而且CasperJS的语法与普通JS略有不同。 - Raptor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接