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