首頁  >  問答  >  主體

javascript - js对象的key是汉字的问题

var foo = {
   '键': '值'
}

设计了一个mapping对象,键名必须是中文,foo['键']是可以娶到数据的,那么这样做有什么不好的地方吗?还是用正则表达式比较好?

阿神阿神2748 天前1700

全部回覆(7)我來回復

  • ringa_lee

    ringa_lee2017-04-11 12:13:05

    我来说个不好之处。

    如果这段代码在单独一个 js 文件里,而不是嵌入在HTML里面。
    那么当浏览器错误的识别这个js文件的编码的时候,其他地方的 js foo['键']undefined

    比如
    a.js
    保存成 GB2312

    var foo = {
       '键': '值'
    }

    i.html
    保存成 utf-8

    <head>
        <meta charset="utf-8">
        <script src=“a.js”></script>
        <script>console.log(foo['键'])</script>
    </head>
    

    这样就有可能出问题(我说有可能因为浏览器会自动试图识别正确的编码,服务器也会试图识别正确的编码作为HTTP头发送给浏览器)

    所以如果是单独在一个 js 文件里写中文的话,一般写成

    var foo = {'\u952e':"\u503c"}
    

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-11 12:13:05

    没什么不好

    然而这跟正则有什么关系。。

    回覆
    0
  • 黄舟

    黄舟2017-04-11 12:13:05

    var 对象= {
        '键': '值'
    };
    console.log(对象['键']);
    

    这样也是可以的。但是编程用英文更好吧。

    回覆
    0
  • 迷茫

    迷茫2017-04-11 12:13:05

    没事的呀 只是为什么要这么做呢

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-11 12:13:05

    并没有什么不好,底层存的都是字符编码而已。
    你可以试试用Map对象,更加完善的键值对,键类型可以为任一类型

    回覆
    0
  • 高洛峰

    高洛峰2017-04-11 12:13:05

    谢谢邀请,这样可以用

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 12:13:05

    js是基于Unicode的,只要符合这个编码就可以

    var 哈哈 = 1;
    console.log(哈哈);

    这是合法的

    回覆
    0
  • 取消回覆