1. 程式人生 > >ES6 之 字符串擴展

ES6 之 字符串擴展

ads string ons end uppercase con eof 遍歷 是否

字符串所有的方法,都 不會修改字符串本身(字符串是不可變的),操作完成會 返回一個新的字符串。

將一個值轉化為字符串,.toString()方法,但是null和undefined值沒有這個方法,

1、字符的Unicode(“\uxxxx”)表示法

xxxx —— 表示Unicode的碼點,但是這種碼點在\u0000~\uFFFF之間的字符。超出這個範圍額字符,必須用2個雙字節的形式表示。

如果直接在\u後面跟上超出範圍的值,如\u20BB7,js會理解成\u20BB + 7,由於\u20BB是一個不可打印字符,所以只會顯示一個空格,後面跟一個7。

console.log("\uD842\uDFB7") // ??
console.log("\u20BB7") // ?7 console.log("\u{20BB7}") // ??

ES6對這一點做出了改進,只要將碼點放入大括號,就能正確解讀改字符串了。如上

JS內部,字符換是以UTF-16的格式存儲的,每一個字符固定為2個字節。

2、ES5之字符串

字符串的拼接 和 截取

// 拼接
字符串.concat(str1,str2,str3...)
拼接符 +     //推薦使用

// 截取
字符串.slice(start,end) // 前包後不包
// slice() substring() substr() 第一個參數是開始位置, // slice() substring() 第二個參數是結束位置 // substr() 第二個參數是 返回的長度 let str = abcdefg console.log(str.slice(2,4)); // cd console.log(str.substring(2,4)); // cd console.log(str.substr(2,4)); // cdef

查詢字符是否在字符串中存在

字符串.indexOf(); // 返回索引或-1
字符串.lastIndexOf();

去除空白符

字符串.trim();  // 去除字符串兩邊的空格

字母字符大小寫轉換

字符串.toUpperCase();     // 轉換大寫 重點
字符串.toLowerCase();     // 轉換小寫 重點

字符串替換

字符串.replace(oldStr,newStr);

字符串分割

字符串.split(sp);  // 把一個字符串分割成字符串數組。

3、ES6 之 字符串

let str = ‘abcdefg‘

1、for···of···字符串的遍歷器接口

// for···of···字符串的遍歷器接口
for( let codePoint of str) { console.log(codePoint) // 返回字符串的每一個字符 console.log(typeof codePoint) // string }
includes() 、startsWith()、 endsWith() 返回的都是boolean值
// includes() startsWith() endsWith() 返回的都是boolean值
// includes() 表示是否能找到參數
// startsWith() 表示參數字符串是否在源字符串開始
// endsWith() 表示參數字符串是否在源字符串結尾
console.log(str.includes(‘cd‘)) // true
console.log(str.startsWith(‘ab‘)) // true
console.log(str.endsWith(‘fg‘)) // true

repeat() 將源字符串復制一遍,返回新的字符串
// 參數是小數 會被取整,0返回空,Infinity或負數會報錯,NaN等同於0
console.log(str.repeat(3)) // abcdefgabcdefgabcdefg

padStart() 、padEnd() 字符串補全
    // 如果某個字符串不夠指定長度,會在頭部或尾部補全長度
    console.log(str.padStart(10,‘0‘)) // 000abcdefg
    console.log(str.padEnd(10,‘0‘)) // abcdefg000  

ES6 之 字符串擴展