1 for...of 字元串的遍歷介面 for(let i of "abc"){ console.log(i); } // a // b // c 2 includes 是否包含某字元串,返回布爾值 格式:str.includes(searchString[, position]) 與indexOf ...
1 for...of 字元串的遍歷介面
for(let i of "abc"){
console.log(i);
}
// a
// b
// c
2 includes 是否包含某字元串,返回布爾值
格式:str.includes(searchString[, position])
與indexOf的對比:
indexOf:返回下標,判斷是否包含某字元串,下標是字元串的位置
includes:返回布爾值,是否包含某字元串,如果只是判斷字元串中包含,此法可行。
var s = "hello";
// es5
s.indexOf("o"); // 4
// es6
s.includes("o"); // true
s.includes("d"); // false
s.includes("h", 2); // false 從第三個字元開始找
3 startsWith 參數字元串是否在源字元串的頭部,返回布爾值
格式:str.startsWith(searchString[, position])
var s = "hello world";
// es5
s.indexOf("hello"); // 0 等於0表示就在源字元串頭部
// es6
s.startsWith("hello"); // true
s.startsWith("world"); // false
s.startsWith("world", 6); // true
4 endsWith 跟startsWith相反,表示參數字元串是否在源字元串的尾部,返回布爾值
格式:str.endsWith(searchString[, position])
var s = "hello world";
// es5
String.prototype.endWith=function(endStr){
var d=this.length-endStr.length;
return (d>=0&&this.lastIndexOf(endStr)==d)
}
s.endWith("world"); // true
// es6
s.endsWith("world"); // true
s.endsWith("world", 5); // false
s.endsWith("hello", 5); // true
5 repeat 將原字元串重覆n次,返回一個新字元串
var s = "s";
s.repeat(3); // sss
s.repeat(2.6); // ss 小數會被取整
s.repeat(-2); // RangeError 報錯
s.repeat(0); // ""
6 模板字元串 是增強版的字元串,用反引號(`)標識。
它可以當作普通字元串使用,也可以用來定義多行字元串,或者在字元串中嵌入變數,好處相當明顯,不用再拼接字元串,使用模板字元串內部可以使用變數了。
// es5 輸出模板通常是如下格式,相當繁瑣還不方便
var name="Bob",time="today";
var resultStr = "hello "+name+", how are you "+time+'?'; //hello Bob, how are you today?
// es6 模板字元串
console.log(`string text line 1
string text line 2`);
//string text line 1
//string text line 2
// 直接用${變數名}表示
`Hello ${name}, how are you ${time}?` // Hello Bob, how are you today?
// 使用表達式
var obj={a:1,b:2};
`${obj.a+obj.b}` // 3
// 使用函數
function fn() {
return "Hello World";
}
`this is fn return str: ${fn()}` // this is fn return str: Hello World
具體es6關於字元串的變化、拓展請查看MDN官網