《ES6標準入門》 字串擴充套件

2021-08-13 00:57:03 字數 2822 閱讀 3397

感覺暫時用不到,手動忽略。

兩者都是返回字串給定位置的字元

charat():es5語法,不支援unicode編號大於0xffff的字元;

at:es7語法,支援unicode編號大於0xffff的字元。

'abc'.charat(0); // 'a'

'abc'.at(0); // 'a'

傳統js語法

indexof():傳統js語法,返回指定字串在另一字串的位置,可以確定乙個字串是否包含在另乙個字串中;

es語法

includes():返回布林值,表示是否找到了引數字串;

startswith():返回布林值,表示引數字串是否在源字串的頭部;

endswith():返回布林值,表示引數字串是否在源字串的尾部。

var s = 'hello world!';

s.startswith('hello') // true

s.endswith('!') // true

s.includes('o') // true

這三個方法都支援第二個引數,表示開始搜尋的位置。

var s = 'hello world!';

s.startswith('world', 6) // true

s.endswith('hello', 5) // true

s.includes('hello', 6) // false

上面**表示,使用第二個引數n時,endswith的行為與其他兩個方法有所不同。它針對前n個字元,而其他兩個方法針對從第n個位置直到字串結束。

repeat()返回乙個新字串,表示將源字串重複n次:

'x'.repeat(3) // "***"

'hello'.repeat(2) // "hellohello"

'na'.repeat(0) // ""

引數如果是小數,會被取整。

'na'.repeat(2.9) // "nana"
如果repeat的引數是負數或者infinity,會報錯。

'na'.repeat(infinity)

// rangeerror

'na'.repeat(-1)

// rangeerror

但是,如果引數是0到-1之間的小數,則等同於0,這是因為會先進行取整運算。0到-1之間的小數,取整以後等於-0repeat視同為0。

'na'.repeat(-0.9) // ""
引數nan等同於0。

'na'.repeat(nan) // ""
如果repeat的引數是字串,則會先轉換成數字。

'na'.repeat('na') // ""

'na'.repeat('3') // "nanana"

es2017 引入了字串補全長度的功能。如果某個字串不夠指定長度,會在頭部或尾部補全。padstart()用於頭部補全,padend()用於尾部補全。

'x'.padstart(5, 'ab') // 'ababx'

'x'.padstart(4, 'ab') // 'abax'

'x'.padend(5, 'ab') // 'xabab'

'x'.padend(4, 'ab') // 'xaba'

上面**中,padstartpadend一共接受兩個引數,第乙個引數用來指定字串的最小長度,第二個引數是用來補全的字串。

如果原字串的長度,等於或大於指定的最小長度,則返回原字串。

'***'.padstart(2, 'ab') // '***'

'***'.padend(2, 'ab') // '***'

如果用來補全的字串與原字串,兩者的長度之和超過了指定的最小長度,則會截去超出位數的補全字串。

'abc'.padstart(10, '0123456789')

// '0123456abc'

如果省略第二個引數,預設使用空格補全長度。

'x'.padstart(4) // '   x'

'x'.padend(4) // 'x '

padstart的常見用途是為數值補全指定位數。下面**生成10位的數值字串。

'1'.padstart(10, '0') // "0000000001"

'12'.padstart(10, '0') // "0000000012"

'123456'.padstart(10, '0') // "0000123456"

另乙個用途是提示字串格式。

'12'.padstart(10, 'yyyy-mm-dd') // "yyyy-mm-12"

'09-12'.padstart(10, 'yyyy-mm-dd') // "yyyy-09-12"

ES6標準入門 6 陣列的擴充套件

擴充套件運算子 spread 例子1 es5 的寫法 function f x,y,z let args 0,1,2 es6 的寫法 f args 例子2 es5 的寫法 let arr1 0,1,2 let arr2 3,4,5 es6 的寫法 arr1.push arr2 與解構賦值結合 函式的...

ES6中字串擴充套件

for.of 遍歷字串 例如 1 for let codepoint of string 執行結果 說明 三個方法都接收兩個引數,第乙個引數為檢索的值,第二個引數為檢索的起始位置,返回布林值 例如 1 let s hello world 23 const a,b,c 4 s.startswith h...

《ES6標準入門》(一)let和const

一 let命令 1 let的作用域只在 塊內,塊外無效 var全域性有效 var a for var i 0 i 10 i a 6 對於這段 變數i是var宣告的,在全域性範圍內有效,所以每一次迴圈,新的i值都會覆蓋舊值,導致最後輸出的是最後一輪的i值 如果使用let,宣告的變數僅在塊級作用域內有效...