使用非 ASCII 字符作为 JavaScript 对象键 [重复]
Posted
技术标签:
【中文标题】使用非 ASCII 字符作为 JavaScript 对象键 [重复]【英文标题】:Using non-ASCII character as JavaScript object key [duplicate] 【发布时间】: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 ...
如果属性名称是有效的变量名称,您只能使用点表示法。
【参考方案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 对象中的对象键和值也不应该用:
(冒号)而不是=>
(粗逗号)分隔
【讨论】:
以上是关于使用非 ASCII 字符作为 JavaScript 对象键 [重复]的主要内容,如果未能解决你的问题,请参考以下文章