本筆記爲閱讀http://es6.ruanyifeng.com/ 阮老師的文章本身的總結,僅做自用,感謝阮老師的技術分享。es6
1.超過uFFFF的字符ES5沒法正確顯示,會顯示成前面的uFFFF的碼點符號加四位後面的碼點符號,如u20BB7會解析爲u20BB+7,ES6中將碼點寫在大括號中便可正確輸出。
ES6共有6中方法表示一個字符:this
'\z' === 'z' // true '\172' === 'z' // true '\x7A' === 'z' // true '\u007A' === 'z' // true '\u{7A}' === 'z' // true
2.js內部存儲字符默認是兩個字節,對於4個字節的js會將其視爲兩個字符。
ES5提供charCodeAt方法(s.charCodeAt),ES6新增codePointAt方法。code
3.ES5提供fromCharCode,ES6提供fromCodePoint方法,從碼點返回字符。接口
4.字符串的遍歷器接口:ip
for(let i of 'foo'){ console.log(i) }//'f''o''o'
5.ES6新增判斷字符串的包含狀況(ES5->indexOf):字符串
includes: 返回bool值,表示是否找到了字符串。 startsWith: 返回bool值, 表示參數字符串是否在原字符串的頭部。 endsWith: 返回bool值,表示參數字符串是否在原字符串的尾部。
這三個方法都支持第二個參數,表示開始搜索的位置:get
let s = 'hello world' s.includes('hello',5)//false s.startsWith('world',6)//true s.endsWith('hello',5)//true(endsWith搜索前n個字符)
6.repeat返回一個字符串嗎,表示將原字符串重複n次,string
're'.repeat(3)//'rerere'
7.padStart,padEnd用於補全字符串,前者從頭部開始補全,後者從尾部補全。it
'x'.padStart(5,'as')//'asasx' 'b'.padEnd(5,'fg')//'bfgfg' 'j'.padStart(5)//' j'(默認使用空格補全)
8.模板字符串。反引號``括起來console
// 普通字符串 `In JavaScript '\n' is a line-feed.` // 多行字符串 `In JavaScript this is not legal.` console.log(`string text line 1 string text line 2`); //加入變量 let name = 'asd', time = 'today' `${time} ,my name is ${name}`
後面的模板編譯看不懂