摘要:字符串的擴展字符的表示法參數(shù)與數(shù)組字符串的遍歷使用循環(huán)遍歷傳統(tǒng)的字符串只有方法,可以用來確定一個字符串是否包含在另一個字符串中。返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。
字符串的擴展 1.字符的 Unicode 表示法 rest參數(shù)與數(shù)組
function log(...value) { console.log(value); console.log(...value); } log([1,2,3]); // [ [ 1, 2, 3 ] ] // [ 1, 2, 3 ] log(1,2,3); // [ 1, 2, 3 ] // 1 2 32.字符串的遍歷
使用for...of循環(huán)遍歷
for(let item of "foo"){ console.log(item); //"f" "o" "o" }3.includes(),startsWith(),endsWith()
傳統(tǒng)的字符串只有indexOf方法,可以用來確定一個字符串是否包含在另一個字符串中。ES6又提供了三種新方法。
- includes():返回布爾值,表示是否找到了參數(shù)字符串。 - StartsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。 - endsWith():返回布爾值,表示參數(shù)字符串是否在原字符串的尾部。
let s = "Hello world!" s.startsWith("Hello") //true s.endsWith("!") //true s.includes("o") //true
這三種方法都支持第二個參數(shù),表示開始搜索的位置。
let s = "Hello world!"; s.startsWith("world",6)//true s.endsWith("Hello",5)//true 前5個字符串 s.includes("Hello",6)//false //上面代碼表示,使用第二個參數(shù)n時,**endsWith的行為與其他兩個方法有所不同。它針對前n個字符,**而其他兩個方法針對從第n個位置直到字符串結(jié)束。4.repeat()
repeat返回一個新字符串,表示將原字符串重復(fù)n次。
"x".repeat(3)//"xxx" "hello".repeat(2)//"hellohello" "na".rapeat(0) //""
如果參數(shù)是小數(shù),則會取整。
"na".repeat(2.9) //"nana"
如果參數(shù)是負數(shù)或者是Infinity,會報錯
"na".repeat(Infinity) //RangError "na".repeat(-1)//RangError
如果參數(shù)在0到-1之間則視為為0
"na".repeat(-0.9) //"" //參數(shù)NaN等同于0 "na".repeat(NaN)//"" //如果參數(shù)是字符串則會先轉(zhuǎn)換成數(shù)字 "na".repeat("na") //"" "na".rapeat("3")//"nanana"5.padStart(),padEnd()
字符串補全的功能
padStart()用于頭部補全,padEnd()用于尾部補全。
"x".padStart(5,"ab");//"ababx" "x".padStart(4,"ab");//"abax" "x".padEnd(5,"ab");//"xabab" "x".padEnd(4,"ab");//"xaba"
如果原字符串的長度,等于或大于最大長度,則字符串補全不生效,返回原字符串。
"xxx".padStart(2,"ab") //"xxx" 返回原字符串 "xxx".padEnd(2,"ab") //"xxx" 返回原字符串
如果補全的字符串和原字符串,兩者的長度超出了最大長度,則截取超出位數(shù)的補全字符串
"abc".padStart(10,"0123456789") //"0123456abc" 如果省略第二個參數(shù),默認使用空格補全長度。 "x".padStart(4) //" x" "x".padEnd(4) //"x "
padStart()的常見用途是為數(shù)值補全指定位數(shù)。下面代碼生成 10 位的數(shù)值字符串。
"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"6.字符串嵌入變量
// 字符串中嵌入變量 let name = "Bob", time = "today"; `Hello ${name}, how are you ${time}?`
大括號內(nèi)部可以放入任意的 JavaScript 表達式,可以進行運算,以及引用對象屬性。
let x = 1; let y = 2; `${x} + ${y} = ${x + y}` // "1 + 2 = 3" `${x} + ${y * 2} = ${x + y * 2}` // "1 + 4 = 5" let obj = {x: 1, y: 2}; `${obj.x + obj.y}` // "3"
模板字符串之中還能調(diào)用函數(shù)。
function fn() { return "Hello World"; } `foo ${fn()} bar` // foo Hello World bar
如果模板字符串中的變量沒有聲明,將報錯。
// 變量place沒有聲明 let msg = `Hello, ${place}`; // 報錯 //由于模板字符串的大括號內(nèi)部,就是執(zhí)行 JavaScript 代碼,因此如果大括號內(nèi)部是一個字符串,將會原樣輸出 `Hello ${"World"}` // "Hello World" 模板字符串甚至還能嵌套。 const tmpl = addrs => `
${addr.first} |
${addr.last} |
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/108834.html
摘要:字符串的擴展字符串的遍歷器接口字符串可以被循環(huán)遍歷。即能識別編號大于查詢字符串是否包含某個字符返回布爾值,表示是否找到了參數(shù)字符串。返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。 字符串的擴展 1.字符串的遍歷器接口 字符串可以被for...of循環(huán)遍歷。 與es5的比較for循環(huán)雖可以遍歷字符串,但不能識別大于oxFFFF的編碼; 2.位置 --> 字符/碼點 根據(jù)指定位置返回對應(yīng)...
摘要:雖說可以通過上述方式進行防御,遠程實體擴展通過使解析器發(fā)出遠程請求來獲得被引用實體的擴展值來進行攻擊。返回結(jié)果將自行定義其他解析器必須另行請求的外部實體。 XMl Entity Expansion(攻擊)某種程度上類似于 XML Entity Expansion,但是它主要試圖通過消耗目標程序的服務(wù)器環(huán)境來進行DOS攻擊的。這種攻擊基于XML Entity Expansion實現(xiàn),通過...
摘要:項目實戰(zhàn)教程第章擴展函數(shù)與屬性在使用的時候,我們經(jīng)常使用諸如等等一堆工具類,代碼寫起來也比較冗長。本章我們介紹的擴展函數(shù)和屬性。擴展函數(shù)中提供了非常簡單使用的擴展函數(shù)功能。 《Kotlin 項目實戰(zhàn)教程》 第6章 擴展函數(shù)與屬性 在使用Java的時候,我們經(jīng)常使用諸如StringUtil, DateUtil等等一堆工具類,代碼寫起來也比較冗長。舉個例子,獲取一個字符串的第一個字符值、最...
閱讀 2053·2021-11-11 16:55
閱讀 1395·2021-09-28 09:36
閱讀 1038·2019-08-29 15:21
閱讀 1571·2019-08-29 14:10
閱讀 2757·2019-08-29 14:08
閱讀 1628·2019-08-29 12:31
閱讀 3243·2019-08-29 12:31
閱讀 976·2019-08-26 16:47