es6 字符串?dāng)U展

在擴(kuò)展的字符串中有幾個(gè)方法是es7的一個(gè)提案,如果不處理兼容性會(huì)導(dǎo)致編譯無法通過,處理兼容性的方法:安裝一個(gè)處理兼容性的庫? npm? install? babel-polyfill? --save-dev

{

? ? ?console.log( 'a', '\uBB61' );//? ?

? ? ?console.log('S','\uBB617');//? ?7? \uBB617大于兩個(gè)字節(jié)的字符,將前四個(gè)當(dāng)做一個(gè)字符,第5個(gè)之后的當(dāng)做其他字符

? ? ?console.log('S','\u{20BB7}');//??

}

//處理大于兩個(gè)字節(jié)的字符

{

? ? ?//es5 處理? charAt和charCodeAt對處理大于兩個(gè)字節(jié)的字符不準(zhǔn)確

? ? ?let ?s ?= '??';

? ? ?console.log('length', ?s.length); ? //? 2

? ? ?console.log('char-0', ?s.charAt(0)); ?//? 亂碼

? ? ?console.log('char-1', ? s.charAt(1)); ? ?//? ? 亂碼

? ? ?console.log('atchar-0', ? s.charCodeAt(0)); ? //? 55362

? ? ?console.log('atchar-1', ?s.charCodeAt(1)); ? ?//? 57271

? ? ?//es6 處理? codePointAt可準(zhǔn)確的處理任何字符

? ? ?let ? s1 ?= ?'??a';

? ? ?console.log('length', ?s1.length); ? //? ? 3

? ? ?console.log('code0', ?s1.codePointAt(0)); ? //? ? 134071

? ? ?console.log('code0 tostring', ?s1.codePointAt(0).toString(16)); ? //? 20bb7

? ? ?console.log('code1', ?s1.codePointAt(1)); ? //? ? 57271? codePointAt(1):只取后兩個(gè)字節(jié)

? ? ?console.log('code2', ?s1.codePointAt(2)); ? // 97? -- a

}

{

? ? ?//es5 方法? fromCharCode 處理大于兩個(gè)字節(jié)的字符 為亂碼

? ? console.log(String.fromCharCode("0x20bb7")); ? // ??

? ? //es6 方法? fromCodePoint 處理大于兩個(gè)字節(jié)的字符 準(zhǔn)確

? ? console.log(String.fromCodePoint("0x20bb7")); ?// ??

}

{

? ? ?let ?str ?= ?'\u{20bb7}abc';

? ? //es5? 處理

? ? for( ?let i = 0; i < str.length; ?i++){

? ? ? ? ?console.log('es5',str[i]);//? ?? a? b? c

? ? ?}

? ? //es5? 處理

? ? for( ?let ?code ?of ?str ){

? ? ? ? console.log('es6', code); ?//??a? b? c

? ?}

}

//字符串的包含,起始,結(jié)束

{

? ? ?let ?str ?= ?"string";

? ? ?console.log('includes', ?str.includes('c')); ? //false

? ? ?console.log('startsWith', ? ?str.startsWith('str')); ? //true

? ? ?console.log('endsWith', ? ?str.endsWith('g')); ? //true

}

//字符串重復(fù)顯示

{

? ? ? let ?str ?= ?"abc";

? ? ?console.log(str.repeat(2)); ? //? abcabc

}

//使用 `${}`進(jìn)行簡單數(shù)據(jù)拼接

{

? ? ?let ? name ?= ?"line";

? ? let ? info ?= ?"hello world";

? ? let? n? =? `i am? ${name},${info}`;? // i am line,hello world

? ?console.log(n);

}

//字符串?dāng)?shù)字補(bǔ)零

{

? ? ?console.log('1'.padStart(2,'0'));// 01

? ? ?console.log('12'.padStart(2,'0'));// 12

? ? ?console.log('1'.padEnd(2,'0'));// 10

? ? ?console.log('12'.padEnd(2,'0'));// 12

}

//標(biāo)簽?zāi)0?/p>

{

? ? ? let ?user ?= ?{?

? ? ? ? ? ? ? ? ? ?name:"list",

? ? ? ? ? ? ? ? ? info:"hello world"

? ? };

? ? abc`i am${user.name} ${user.info}`;

? ? console.log('aaa',abc`i am${user.name},${user.info}`);

? ? //s :標(biāo)簽?zāi)0? v1:第一個(gè)參數(shù) user.name? v2:第二個(gè)參數(shù) user.info

? ? function ? abc(s,v1,v2){

? ? ? ? ? ?console.log("abc", s,v1,v2); ? // s: ["i am ", " ", ""]? v1:list? v2: hello world

? ? ? ? ? ?return ?s+v1+v2;

? ?}

}

// String.raw? ? 對\進(jìn)行轉(zhuǎn)義

{

? ? ? console.log(String.raw`Hi\n${1+2}`); ? // \n換行符沒有生效

? ? ? console.log(`Hi\n${1+2}`); ? //? \n換行符生效

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

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

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