js中有indexof方法,來確認乙個字串是否包含在另乙個字串中。es6又提供了三中新方法:
- includes():返回布林值,表示是否找到了引數字串。
- startswith():返回布林值,表示引數字串是否在源字串的頭部。
- endswith():返回布林值,表示引數字串是否在源字串的尾部。
let s = "hello world!";
s.startswith("hello"); //true
s.endswith("!"); //true
s.includes("e"); //true
這三個方法都支援第二個引數,表示開始搜尋的位置。
let s = "hello world!";
s.startswith("world",6); //true
s.endswith("hello",5); //true
s.includes("hello",6); //false
repeat方法返回乙個新的字串,表示將源字串重複n次。
'hello'.repeat(2); //"hellohello"
'na'.repeat(0); //""
如果引數是小數,會被取整。
'hello'.repeat(2.9); //"hellohello"
如果repeat的引數是負數或者infinity,會報錯。
但如果引數是0到-1之間的小數,則等同於0,這是因為會先進行取整運算。取整後等於-0,repeat視同0。
padstart()用於頭部補全,padend()用於尾部補全。
'x'.padstart(5,'ab'); //"ababx"
'x'.padend(5,'ab'); //"xabab"
padstart和padend一共接受兩個引數,第乙個引數用來指定字串的最小長度,第二個引數是用來補全的字串。
如果原字串的長度,大於或等於指定的最小長度,則返回原字串。
如果省略第二個引數,預設使用空格補全長度。
'x'.padstart(3); //" x"
'x'.padend(3); //"x "
模板字串可以緊跟在乙個函式名後面,該函式將被呼叫來處理這個模板字串。
alert`123`;
//等同於
alert(123);
標籤模板其實不是模板,而是函式呼叫的一種特殊形式。「標籤」指的就是函式,緊跟在後面的模板字串就是它的引數。
但是,如果模板字元裡有變數,就不是簡單的呼叫了,而是會將模板字串先處理成多個引數,再呼叫函式。
let a = 5;
let b = 10;
tag`hello $ world $`;
//等同於
tag(['hello ',' world',''], 15, 50);
函式tag一次會接收到多個引數。
function tag(stringarr, value1, value2)
//等同於
function tag(stringarr, ...values)
tag函式的第乙個引數是乙個陣列,該陣列的成員是模板字串中那些沒有變數替換的部分,也就是說,變數替換只發生在陣列的第乙個成員與第二個成員之間,第二個成員與第三個成員之間。
tag函式的其他引數,都是模板字串各個變數被替換後的值。由於本例中,模板字串含有兩個變數,因此tag會接受到value1和value2兩個引數。
tag函式所有引數的實際值如下。
- 第乙個引數:['hello ', ' world', '']
- 第二個引數:15
- 第三個引數:50
var a = 5;
var b = 10;
function tag(s,v1,v2)
tag`hello $ world $`
// hello
// world
// // 15
// 50
// "ok"
ES6 字串擴充套件
1 字串可以使用 u x的形式來表達乙個字元,x叫做字元的碼點,x的範圍是0000 ffff,超過ffff的碼點需要用兩個雙位元組表示 如果我們 u後面的16進製制的值大於ffff,我們需要加乙個大括號 u讓js正確解析。2 我們應該都了解,漢字一般都需要兩個雙位元組來表示,在js中兩個位元組佔乙個...
ES6 字串的擴充套件
1.at 返回字串給定位置的字元 charat 該方法不能識別碼點大於0xffff的字元 at 可以識別碼點大於0xffff的字元 2.includes 返回布林值,表示是否找到了引數字串 startswith 返回布林值,表示引數字串是否在源字串的頭部 endswidth 返回布林值,表示引數字串...
ES6 字串的擴充套件
u 其中 為字元的碼點 1 codepointat 獲取當前字元的unicode編碼,能夠正確處理4個位元組儲存的字元 2 string.fromcodepoint 從unicode編碼轉換成字元 1 for value of str 對字串進行遍歷 2 at 獲取指定位置的字元,可以正確識別中文字...