感覺暫時用不到,手動忽略。
兩者都是返回字串給定位置的字元
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之間的小數,取整以後等於-0
,repeat
視同為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'
上面**中,padstart
和padend
一共接受兩個引數,第乙個引數用來指定字串的最小長度,第二個引數是用來補全的字串。
如果原字串的長度,等於或大於指定的最小長度,則返回原字串。
'***'.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,宣告的變數僅在塊級作用域內有效...