摘要:字符串添加了很多新功能,當(dāng)然也有很多關(guān)于字符串編碼的一些學(xué)習(xí)性東西,在這里咱們就不多做介紹,介紹一下常用的一些方法字符串的遍歷接口中字符串?dāng)U展了遍歷器接口其實(shí)看起來和其他的遍歷長的挺像的,那我們來看看它是否除了能遍歷字符串之外,還能否遍歷其
es6字符串添加了很多新功能,當(dāng)然也有很多關(guān)于字符串編碼的一些學(xué)習(xí)性東西,在這里咱們就不多做介紹,字符串的遍歷接口
介紹一下常用的一些方法
es6中字符串?dāng)U展了遍歷器接口 for(let i of "abcdef"){ console.log(i) // a,b,c,d,e,f } 其實(shí)看起來和其他的遍歷長的挺像的,那我們來看看它是否除了能遍歷字符串之外,還能否遍歷其它類型呢 那我們來試一下數(shù)組類型,會像我們預(yù)想的那樣會得到遍歷的值 for(let i of [1,2,3]){ console.log(i) // 1,2,3 } 看一下對象的類型的遍歷 for(let i of {a:1,b:2}){ console.log(i) // 報錯 }
上面遍歷對象是會報錯的,因為for of 是不能直接枚舉普通對象的,除非這個對象有Iterator接口才能使用,Iterator接口在這里就不多說了,以后的文章會對它進(jìn)行講解的
for of 循環(huán)遍歷器還可以配合break(直接跳出) continue(跳出繼續(xù)執(zhí)行) return (在函數(shù)內(nèi)使用)配合使用跳出循環(huán) for (let a of "123456") { if (a ==="1") { break } console.log(a) // 1 }
有時間的話大家不妨可以試一下
字符串includes(),startsWith(),endsWith()方法es5中提供了indexOf方法來確定查找的字符串是否在其中,現(xiàn)在又多了三個,是不是很開心?。?!
includes方法返回布爾值,是否在字符串其中
let str = "this is es6" str.includes("es6")// true 這個方法還支持第二個參數(shù),那就是選擇位置搜索,從0開始算,空格也會算位置,是從當(dāng)前位置往后搜索,也算當(dāng)前的位置 let str = "this is es6" str.includes("i", 5) // true 搜索多個也是可以的,當(dāng)然如果位置超過es6的真實(shí)位置會查找不到 str.includes("es6", 5) // true
startsWith方法返回布爾值,是否在字符串的頭部
let str = "is heard" str.startsWith("is") // true str.startsWith("i") // true str.startsWith("is heard") // true str.startsWith("h") // false 上邊的第三個為什么也算頭部,在我看來因為把is heaed 看做了整體所以都算頭部,而最后一個false是因為在is heard查找h所以h不算是頭部 這個方法也是有第二個參數(shù)的 str.startsWith("i", 0) // true str.startsWith("is", 0) // true str.startsWith("is", 1) // false
endsWith方法返回布爾值,是否在字符串的尾部
let str = "is last" str.endsWith("t") //true str.endsWith("st") //true, str.endsWith("s") //false
其實(shí)這個和上邊的方法startsWith差不多少只不過這個是查找的尾部,那個是查找的頭部
repeat 重復(fù)返回一個新的字符串,重復(fù)多少次取決于你的參數(shù)參數(shù)是 0 到-1 之間的小數(shù),則等同于 0,-0也算0 abc.repeat(3)// abcabcabc 因為不能小于-1,才會報錯 "abc154789".repeat(-1) //報錯 大于-1的話會被取整為0,所以會是空的字符串 "abc154789".repeat(-0.9999999999) //“” NaN也會被當(dāng)做為0處理 "NaN".repeat(NaN) // "" 參數(shù)也可以為字符串,但是也是空因為下面的字符串會被轉(zhuǎn)為NaN "hhh".repeat("cc") // ""padStart(),padEnd()Es7的字符串自動補(bǔ)全功能
padStart 我們來先說一下頭部補(bǔ)全 "aa".padStart(5, "xc") // xcxaa "??!".padStart(4, "你好") // "你好啊!" "好看".padStart(4, "你長得真") // "你長好看" "好看".padStart(4) // " 看" 上面的例子是第一個參數(shù)是5,表示要5個字符,第二個參數(shù)是補(bǔ)全的參數(shù),從頭部補(bǔ)全xcx,’aa‘是不會變的,當(dāng)然倒數(shù)第二個第一個參數(shù)也算限制了文字,所以會從左到右選取剩余的長度,最后一個的話沒有第二個參數(shù)會按四個空格 我們來看看從后面補(bǔ)全,其實(shí)機(jī)制和從頭部補(bǔ)全差不多,看一下例子 "aa".padEnd(5, "xc") // aaxcx "啊!".padEnd(4, "你好") // "啊!你好"模板字符串
我們先來看一下什么是字符串模板,注意不要用單雙引號,要用··,對就是那個
普通的字符串模板
·this is 啊啊啊啊·
多行文本的字符串模板
·哈哈哈,你好啊
我是哈哈·
變量的模板字符串
let a = "你好"
${a}啊 // 你好啊
let str = "this is"
${str}模板 // this is 模板
還可以使用函數(shù),但是得把你需要的return出來
function add () {
return 123
}
${add()}456 // 123456
模板編譯
let a = `
<% for(let i=0; i < 3; i++) { %>
`
上面會被輸出為
我們再來看看下面這個,你們猜函數(shù)會執(zhí)行嗎
let html = `
5
4
3
2
alert(123)
}
String.raw字符串的模板let s1 = "qwe", s2 = "123" String.raw`${ s1 + s2 }` // qwe123 下面這種是左邊的參數(shù)會被分為["h","e","l","l","o"],然后就是左邊一個參數(shù)逗號右邊一個開始補(bǔ) String.raw({raw: "hello"}, 123)// h123ello 第二個參數(shù)為對象的話是不會被分解的哦 String.raw({ raw: "hello" }, {aa: "ooo"});"h[object Object]ello"
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/100974.html
摘要:字符串的擴(kuò)展字符串的遍歷器接口字符串可以被循環(huán)遍歷。即能識別編號大于查詢字符串是否包含某個字符返回布爾值,表示是否找到了參數(shù)字符串。返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。 字符串的擴(kuò)展 1.字符串的遍歷器接口 字符串可以被for...of循環(huán)遍歷。 與es5的比較for循環(huán)雖可以遍歷字符串,但不能識別大于oxFFFF的編碼; 2.位置 --> 字符/碼點(diǎn) 根據(jù)指定位置返回對應(yīng)...
摘要:循環(huán)遍歷對象自身的和繼承的可枚舉屬性不含屬性。返回一個數(shù)組,包含對象自身的所有屬性的鍵名。目前,只有對象方法的簡寫法可以讓引擎確認(rèn),定義的是對象的方法。showImg(https://user-gold-cdn.xitu.io/2019/5/21/16ada8456223b0e1); 1. 屬性的簡潔表示法 在ES6中 允許直接寫入變量和函數(shù),作為對象的屬性和方法,使得代碼的書寫更為簡潔。...
摘要:標(biāo)準(zhǔn)入門讀書筆記和命令新增命令,用于聲明變量,是塊級作用域。用于頭部補(bǔ)全,用于尾部補(bǔ)全。函數(shù)調(diào)用的時候會在內(nèi)存形成一個調(diào)用記錄,又稱為調(diào)用幀,保存調(diào)用位置和內(nèi)部變量等信息。等到執(zhí)行結(jié)束再返回給,的調(diào)用幀才消失。 《ES6標(biāo)準(zhǔn)入門》讀書筆記 @(StuRep) showImg(https://segmentfault.com/img/remote/1460000006766369?w=3...
摘要:屬性的簡潔表示法在中允許直接寫入變量和函數(shù),作為對象的屬性和方法,使得代碼的書寫更為簡潔。循環(huán)遍歷對象自身的和繼承的可枚舉屬性不含屬性。返回一個數(shù)組,包含對象自身的所有屬性的鍵名。 showImg(https://segmentfault.com/img/remote/1460000019259004?w=1282&h=1920); 1. 屬性的簡潔表示法 在ES6中 允許直接寫入變量...
摘要:正則的擴(kuò)展參數(shù)為字符串,那么第二個參數(shù)表示正則表達(dá)式的修飾符,如下等價于參數(shù)為一個正則表達(dá)式,這時返回一個原有正則表達(dá)式的拷貝。如下調(diào)用調(diào)用調(diào)用調(diào)用修飾符對正則表達(dá)式添加了修飾符,用來正確處理大于的字符。 showImg(https://segmentfault.com/img/bVbrJqm?w=800&h=1200); 1. 正則的擴(kuò)展 參數(shù)為字符串, 那么第二個參數(shù)表示正則表達(dá)式...
閱讀 1695·2021-10-27 14:13
閱讀 1966·2021-10-11 10:59
閱讀 3449·2021-09-24 10:26
閱讀 1987·2019-08-30 12:48
閱讀 3108·2019-08-30 12:46
閱讀 2095·2019-08-30 11:16
閱讀 1488·2019-08-30 10:48
閱讀 2858·2019-08-29 16:54