es6 字符串的擴展

在ES6以前,js字符串一直基於16位字符編碼進行構建的(UTF-16),每16位的序列是一個編碼單元,表明一個字符。length,charAt()等字符串屬性和方法都是基於這種編碼單元構造的。Unicode引入了擴展字符集,編碼規則改變了。前2^16碼位以16位的編碼單元表示,超過這個範圍就用32位表示。因此之前的charCodeAt等方法是沒法正確返回32位的UTF-16字符的碼點的。編碼

charCodeAt() 方法可返回指定位置的字符的 Unicode 編碼。這個返回值是 0 - 65535 之間的整數。spa

一、codePointAt正確返回 32 位的 UTF-16 字符的碼點。對於那些兩個字節儲存的常規字符(前2^16碼位之前),它的返回結果與charCodeAt方法相同。(並非常規字符就在很是規字符前面)code

codePointAt方法返回的是碼點的十進制值,若是想要十六進制的值,能夠使用toString方法轉換一下。字符串

二、String.fromCharCode()用於從碼點返回對應字符 可是隻能返回16位的字符,32位的不行。和charCodeAt相對字符編碼

String.fromCodePoint 能夠返回32位的字符  與codePointAt相對擴展

相關文章
相關標籤/搜索