ES6對字符串的改造和增強
1.字符的Unicode表示法
ES6加強了對Unicode的支持嘲玫,允許采用\uxxxx形式表示一個字符癞埠,其中xxxx表示字符的Unicode碼點
"\u0061" // a
但是,這種表示法只限于碼點在\u0000~\uFFFF之間的字符。超出這個范圍的字符,必須用兩個雙字節(jié)的形式表示
"\uD842\uDFB7" // ??
"\u20BB7" // ?7
上面代碼表示,如果直接在\u 后面跟上超過0xFFFF的數(shù)值(比如\u20BB7)恨狈,JavaScript會理解成\u20BB+7。由于\u20BB是一個不可打印字符呛讲,所有只會顯示一個空格禾怠,后面跟著一個7.(但是實際打印出來的是這個東西?)
ES6對一點做出改進,只要將碼點放入大括號贝搁,就能正確解讀該字符
"\u{20BB7}" // "??"
"\u{41}\u{42}\u{43}" // "ABC"
let hello = 123;
hell\u{6F} // 123
'\u{1F680}' === '\uD83D\uDE80'
// true
上面代碼中吗氏,最后一個例子表明,大括號表示與四字節(jié)的UTF-16編碼是等價的徘公。有了這種表示法之后牲证,JavaScript共有6種方法可以表示一個字符。
'\z' === 'z' // true
'\172' === 'z' // true
'\x7A' === 'z' // true
'\u007A' === 'z' // true
'\u{7A}' === 'z' // true
2.字符串的遍歷器接口
(未完待續(xù))