加強(qiáng)了對(duì)Unicode的支持
在ES5中,js支持用\uxxxx來(lái)表示一個(gè)數(shù)字,其中xxxx表示字符的Unicode碼點(diǎn)。這種表示方法僅限于碼點(diǎn)在\u0000~\uFFFF之間的字符,超出這個(gè)碼點(diǎn)的字符必須用兩個(gè)雙字節(jié)表示,但是ES5只能識(shí)別兩個(gè)字節(jié)組成的字符,但ES6中增加了對(duì)兩個(gè)雙字節(jié)字符的支持
-
方法:將碼點(diǎn)包裹在花括號(hào)中
a = '\u{12FFF}';
新的循環(huán)方法
ES6中提供了一個(gè)新的循環(huán)方式for of
特點(diǎn):可以將超過(guò)字節(jié)數(shù)的數(shù)字進(jìn)行循環(huán)遍歷,這種循環(huán)更加可靠
-
格式:for(let word of 變量名)
let a = \u{20ffc}; for(let word of a){ console.log(word); }
字符串新方法
-
include:判斷主串中是否含有對(duì)應(yīng)的子串
let str = 'hello world'; console.log(str.include('he')); //true -
startsWith:判斷主串是否以對(duì)應(yīng)的子串開(kāi)頭
- 參數(shù)一:查找的子串,如果不填會(huì)返回false
- 參數(shù)二:字符串開(kāi)始位置,從零開(kāi)始
let str = 'hello world'; console.log(str.startsWith('he')); //true console.log(str.startsWith('ll',2)); //true -
endsWith:判斷主串是否以對(duì)應(yīng)的子串結(jié)尾
- 參數(shù)一:查找的子串,如果不填會(huì)返回false
- 參數(shù)二:字符串截止在第x個(gè)字符前(從零開(kāi)始)
let str = 'hello world'; console.log(str.endsWith('lo',4)); //false console.log(str.endsWith('lo',5)); //true console.log(str.endsWith('lo',6)); //false -
repeat:將字符串重復(fù)n次,返回新的字符串
let str = 'hello world'; str = str.repeat(3); console.log(str); //hello worldhello worldhello world -
padStart:用子串在字符串開(kāi)始處進(jìn)行補(bǔ)全
- 參數(shù)一:補(bǔ)全到多少位
- 參數(shù)二:用來(lái)補(bǔ)全的子串
let str = 'hello world'; str = str.padStart(15,'abcde'); console.log(str); //abcdhello world -
padEnd:用子串在字符串結(jié)束位置進(jìn)行補(bǔ)全
- 參數(shù)一:補(bǔ)全到多少位
- 參數(shù)二:用來(lái)補(bǔ)全的子串
let str = 'hello world'; str = str.padEnd(15,'abcde'); console.log(str); //hello worldabcd
模板字符串
如果要加入字符串并導(dǎo)入HTML,以前需要這樣做
let obj = {
username:'xiaoming',
age:'18'
gender:'male'
}
let tag = '<div><span>' + obj.username + '</span><span>' + obj.age + '</span><span>' + obj.gender + '</span></div>'
但在ES6中我們使用模板字符串即可
let tpl = `
<div>
<span>${obj.username}</span>
<span>${obj.age}</span>
<span>${obj.gender}</span>
</div>
`
現(xiàn)在我們只需要在字符串中使用`${變量名}`就可以實(shí)現(xiàn)字符串的替換了。相比ES5的‘+’號(hào)連接,這樣的方法更加清晰可讀性更強(qiáng),同時(shí)模板字符串能夠保留字符串的輸入格式,空格及回車(chē)都可以保留,現(xiàn)在我們可以更加輕松的在js中寫(xiě)入HTML的代碼了
注意
- 大括號(hào)中的值不是字符串時(shí),將按照一般的規(guī)則轉(zhuǎn)換成字符串,例如大括號(hào)中的是一個(gè)對(duì)象,那么將默認(rèn)調(diào)用對(duì)象的toString方法
- 模板字符串中的${....}可以放入任意javaScript的表達(dá)式,可以進(jìn)行運(yùn)算,引用對(duì)象屬性,調(diào)用函數(shù),也可以嵌套,甚至還可以調(diào)用自己本身