因為計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。
最早的計算機在設計時採用8個位元(bit
)作為乙個位元組(byte
),所以,乙個位元組能表示的最大的整數就是255(二進位制11111111=十進位制255),
0 - 255被用來表示大小寫英文本母、數字和一些符號,這個編碼表被稱為ascii
編碼
如果要表示中文,顯然乙個位元組是不夠的,至少需要兩個位元組,而且還不能和ascii編碼衝突,所以,中國制定了gb2312
編碼,用來把中文編進去。類似的,日文和韓文等其他語言也有這個問題。
為了統一所有文字的編碼,unicode
應運而生。unicode
把所有語言都統一到一套編碼裡,這樣就不會再有亂碼問題了。
unicode
通常用兩個位元組表示乙個字元,原有的英文編碼從單位元組變成雙位元組,只需要把高位元組全部填為0就可以。
1.在js
中字元不僅能用普通的表示,還可以用unicode
編碼表示
ex:'a' = \u0061 '
(數值使用的是十六進製制)
2.在es5
中,當unicode
編碼大於兩個位元組(0xffff)時
「?」:』\u20007』 // 口7 (編譯器會將前面兩個位元組作為乙個字元,後面7作為新的字元)
所以在es6中使用大括號{}的解決方法
\u
// 「?」
charat()
方法可返回指定位置的字元。
charcodeat()
方法返回對應字元的碼值
string.fromcharcode()
返回對應碼值的字元
上述方法在乙個字元大於兩個位元組時會出現問題
codepointat()
返回對應字元的碼值
string.fromcodepoint()
返回對應碼值上的字元
ES6 字串擴充套件
1 字串可以使用 u x的形式來表達乙個字元,x叫做字元的碼點,x的範圍是0000 ffff,超過ffff的碼點需要用兩個雙位元組表示 如果我們 u後面的16進製制的值大於ffff,我們需要加乙個大括號 u讓js正確解析。2 我們應該都了解,漢字一般都需要兩個雙位元組來表示,在js中兩個位元組佔乙個...
ES6 字串擴充套件 repeat
repeat 方法返回乙個新字串,引數 n 表示將原來的字串重複 n 次。let a s a.repeat 0 a.repeat 2 ss a sa.repeat a a.repeat 2 ss 引數如果是小數會被取整 a.repeat 2.9 ss 引數是負數或者 infinity 會報錯 a.r...
ES6 字串的擴充套件
js中有indexof方法,來確認乙個字串是否包含在另乙個字串中。es6又提供了三中新方法 includes 返回布林值,表示是否找到了引數字串。startswith 返回布林值,表示引數字串是否在源字串的頭部。endswith 返回布林值,表示引數字串是否在源字串的尾部。let s hello w...