javascript - JS 中,’a’ 在內(nèi)存中占2個(gè)字節(jié)還是1個(gè)字節(jié)?
問(wèn)題描述
1、JS 中,’a’ 在內(nèi)存中占2個(gè)字節(jié)還是1個(gè)字節(jié)?JS 是用 UCS-2 編碼,應(yīng)該占 2 個(gè)字節(jié)吧?
2、在不同的引擎中,JS 字符串在編碼都是一樣的嗎?
3、JS 中,字符串在內(nèi)存中怎樣表示“結(jié)尾“,是不是也加上一個(gè) 0 ?
問(wèn)題解答
回答1:String 全局對(duì)象先去讀讀文檔~
回答2:我來(lái)回答一下我知道的:
1) a字母(英語(yǔ)第一個(gè)小寫(xiě)的那個(gè))占用兩個(gè)字節(jié),JS用的為UCS-2,不過(guò)后來(lái)又兼容了UTF16.
但是有一些生僻字就不一定為 2 個(gè)字節(jié)長(zhǎng)度了,可能是多個(gè)。相關(guān)知識(shí)可以找一下 阮一峰的 字符串知識(shí)講解,也建議看
一下維基的相關(guān)條目并參閱其底下的參考鏈接(主要是標(biāo)準(zhǔn)化組織的文檔).
2) 編碼是ECMA規(guī)定的,都是一樣的,作為腳本語(yǔ)言,他的編碼都是被ECMA這份文檔所確定了。
3) 這個(gè)和引擎相關(guān)。
可以參考這個(gè)問(wèn)題的回復(fù)
https://www.zhihu.com/questio...
