字符串的擴展
ES6增加了幾個操作字符串的方法:includes(), startsWith(), endsWith()。
includes():返回布爾值,表示是否找到了參數字符串;
startsWith():返回布爾值,表示參數字符串是否在原字符串的頭部;
endsWith():返回布爾值,表示參數字符串是否在原字符串的尾部。
注意:三個方法都支持第二個參數,表示開始搜索的位置。
代碼舉例:
let a = 'Hello World!';
console.log(a.startsWith('Hello')); // true
console.log(a.endsWith('!')); // true
console.log(a.includes('o')); // true
let b = 'Hello World!';
console.log(b.startsWith('world', 6)); // true
console.log(b.endsWith('Hello', 5)); // true
console.log(b.includes('Hello', 6)); // false
模板字符串
拼接字符串很繁瑣,且易錯:
let person = {name : 'yy', age : 18};
let str = 'Hello ' + person.name + ', your age is ' + person.age + '.';
console.log(str);
模板字符串(template string)是增強版的字符串,用反引號(`)標識。
它可以當作普通字符串使用,也可以用來定義多行字符串,或者在字符串中嵌入變量。
代碼舉例:
// 普通字符串
let str1 = `Hello.`;
console.log(str1);
// 多行字符串
let str2 = `Hello
World.`;
console.log(str2);
// 字符串中嵌入變量
let name = "xx", age = 17;
let str3 = `Hello ${name}, your age is ${age}.`;
console.log(str3);
// 放入任意的 JavaScript 表達式,可以進行運算,以及引用對象屬性
let person = {name : 'yy', age : 18};
let str4 = `Hello ${person.name}, your age is ${person.age + 1}.`;
console.log(str4);