<<深入理解ES6>>記:二

第2章 字符串和正則表達(dá)式

1.在ECMAScript6出現(xiàn)以前,JavaScript字符串一直基于16位字符編碼(UTF-16)進(jìn)行構(gòu)建.

2.新增了完全支持UTF-16的 codePointAt() 方法
這個方法接受編碼單元的位置而非字符位置作為參數(shù), 返回與字符串中給定位置對應(yīng)的碼位,即一個整數(shù)值

let text = '??';
console.log(text.codePointAt(0));    // 134071

3.和上面方法相反
使用String.fromCodePoint()方法根據(jù)指定的碼位生成一個字符

console.log(String.fromCodePoint(134071));  // '??'

4.字符串添加一個normalize()方法,它可以提供Unicode的標(biāo)準(zhǔn)化形式
方法接受一個可選參數(shù),指明應(yīng)用以下某種 Unicode 標(biāo)準(zhǔn)化形式: ('NFC', 'NFD', 'NFKC', 'NFKD')

如果開發(fā)一款國際化的應(yīng)用,那么normalize()方法就有用得多了

注釋: 切記在進(jìn)行排序和比較操作前,將被操作字符串按照統(tǒng)一標(biāo)準(zhǔn)進(jìn)行標(biāo)準(zhǔn)化

5.正則表達(dá)式u修飾符

let text = '??';
console.log(text.length);            // 2
console.log(/^.$/.test(text));       // false
console.log(/^.$/u.test(text));      // true

6.字符串中的子串識別

  • includes(), 在字符串檢測, 結(jié)果true/false
  • startsWith(), 在字符串起始位置檢測, 結(jié)果 true/false
  • endsWith(), 在字符串結(jié)束位置檢測, 結(jié)果 true/false

注釋: 以上方法不能處理傳入正則, 而舊方法indexOf(), lastIndexOf()把傳入的正則表達(dá)式轉(zhuǎn)化為一個字符串并搜索它.

7.repeat(), 參數(shù)number. 表示該字符串的重復(fù)次數(shù)

console.log('x'.repeat(3));   // 'xxx';

8.正則表達(dá)式 y 修飾符

  • 它會影響正則表達(dá)式搜索過程中的 sticky 屬性, 它通知搜索從正則表達(dá)式的lastIndex屬性開始進(jìn)行.
  • 檢測y修飾符是否存在
let pattern = /hello\d/y
console.log(pattern.sticky); // true

9.正則表達(dá)是我的復(fù)制

  • 在ECMAScript5中, 可以通過給RegExp構(gòu)造函數(shù)傳遞正則表達(dá)式作為參數(shù),來復(fù)制這個正則表達(dá)式
var re1 = /ab/i, re2 = new RegExp(re1);   // 可以
re3 = new RegExp(re1, 'g');  // 在ES5中拋出錯誤, 在ES6中正常運(yùn)行(可以通過第二個參數(shù)修改其修飾符)

10.flags 屬性
ES6中可以通過訪問flags返回當(dāng)前正則表達(dá)式的修飾符字符串

let re = /ab/g;
console.log(re.source);  // 'ab'
console.log(re.flags);  // 'ab'

11.模板字面量

  • 基本語法
let message = `hello world`;
  • 多行字符串
ES5:
 var message = "multiline \n
                     string"

ES6: 
 let message = `multiline
                     string` 
注意點(diǎn): 在反撇號中的所以空白符都屬于字符串中的一部分
  • 字符串占位
let name = 'hello';
    message = `${name}, world`;
console.log(message);   // hello, world   
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容