ES6 字串的擴充套件

2021-08-18 22:26:09 字數 2195 閱讀 3123

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 獲取指定位置的字元,可以正確識別中文字...