1、進制:
JavaScript中允許使用字面量的形式聲明不同進制的數字:
var a = 0b10; // 2 聲明一個二進制 var b = 010; // 8 八進制,嚴格模式下會報錯 var c = 10; // 10 十進制 var d = 0x10 // 16 十六進制
其中八進制字面量在嚴格模式下會報錯,數字超過範圍,將會忽略前導 0 ,解析爲十進制數字
var f = 08 ; //8
2、進制之間轉換:
調用toString方法,可以在進制之間進行轉換。
d.toString(2); //"10000" d.toString(8); //"20" d.toString(10);//"16"
3、字符編碼
同樣JavaScript允許使用字面量的形式聲明一個字符串;
var a = 'a'; //"a" 字面量聲明; var b = '\x61';//"a" 使用ASCII碼的格式聲明一個字符串;\x後面跟的是ASCII 16進制的格式。 var c = '\u0061' // "a" 使用unicode編碼聲明的字符串;都是16進制格式。
4、字符編碼轉換
靜態方法:
String.fromCodePoint()
,返回使用指定的代碼點序列創建的字符串;
String.fromCodePoint(97) //"a" 十進制的碼點,一串 Unicode 編碼位置 String.fromCodePoint(0x61) //"a" 十六進制編碼位置
String.fromCharCode()
,返回由指定的UTF-16代碼單元序列創建的字符串;
String.fromCodePoint(97);// "a" String.fromCodePoint(0x61); // "a"
兩者區別在於fromCharCode
參數是
UTF-16代碼單元的數字。 範圍介於0到65535(0xFFFF)之間。 大於0xFFFF的數字將被截斷。 不進行有效性檢查。
實例方法:
String.prototype.charCodeAt()
方法返回0到65535之間的整數,表示給定索引處的UTF-16代碼單元;
'a'.charCodeAt(0) //97
方法返回 一個 Unicode 編碼點值的非負整數。String.prototype.
codePointAt()
'a'.codePointAt(0);//97 '中'.codePointAt(0);//20013