摘要:字符串添加了很多新功能,當(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ù)組類型,會(huì)像我們預(yù)想的那樣會(huì)得到遍歷的值 for(let i of [1,2,3]){ console.log(i) // 1,2,3 } 看一下對象的類型的遍歷 for(let i of {a:1,b:2}){ console.log(i) // 報(bào)錯(cuò) }
上面遍歷對象是會(huì)報(bào)錯(cuò)的,因?yàn)閒or of 是不能直接枚舉普通對象的,除非這個(gè)對象有Iterator接口才能使用,Iterator接口在這里就不多說了,以后的文章會(huì)對它進(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 }
有時(shí)間的話大家不妨可以試一下
字符串includes(),startsWith(),endsWith()方法es5中提供了indexOf方法來確定查找的字符串是否在其中,現(xiàn)在又多了三個(gè),是不是很開心!??!
includes方法返回布爾值,是否在字符串其中
let str = "this is es6" str.includes("es6")// true 這個(gè)方法還支持第二個(gè)參數(shù),那就是選擇位置搜索,從0開始算,空格也會(huì)算位置,是從當(dāng)前位置往后搜索,也算當(dāng)前的位置 let str = "this is es6" str.includes("i", 5) // true 搜索多個(gè)也是可以的,當(dāng)然如果位置超過es6的真實(shí)位置會(huì)查找不到 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 上邊的第三個(gè)為什么也算頭部,在我看來因?yàn)榘裪s heaed 看做了整體所以都算頭部,而最后一個(gè)false是因?yàn)樵趇s heard查找h所以h不算是頭部 這個(gè)方法也是有第二個(gè)參數(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í)這個(gè)和上邊的方法startsWith差不多少只不過這個(gè)是查找的尾部,那個(gè)是查找的頭部
repeat 重復(fù)返回一個(gè)新的字符串,重復(fù)多少次取決于你的參數(shù)參數(shù)是 0 到-1 之間的小數(shù),則等同于 0,-0也算0 abc.repeat(3)// abcabcabc 因?yàn)椴荒苄∮?1,才會(huì)報(bào)錯(cuò) "abc154789".repeat(-1) //報(bào)錯(cuò) 大于-1的話會(huì)被取整為0,所以會(huì)是空的字符串 "abc154789".repeat(-0.9999999999) //“” NaN也會(huì)被當(dāng)做為0處理 "NaN".repeat(NaN) // "" 參數(shù)也可以為字符串,但是也是空因?yàn)橄旅娴淖址畷?huì)被轉(zhuǎn)為NaN "hhh".repeat("cc") // ""padStart(),padEnd()Es7的字符串自動(dòng)補(bǔ)全功能
padStart 我們來先說一下頭部補(bǔ)全 "aa".padStart(5, "xc") // xcxaa "??!".padStart(4, "你好") // "你好?。? "好看".padStart(4, "你長得真") // "你長好看" "好看".padStart(4) // " 看" 上面的例子是第一個(gè)參數(shù)是5,表示要5個(gè)字符,第二個(gè)參數(shù)是補(bǔ)全的參數(shù),從頭部補(bǔ)全xcx,’aa‘是不會(huì)變的,當(dāng)然倒數(shù)第二個(gè)第一個(gè)參數(shù)也算限制了文字,所以會(huì)從左到右選取剩余的長度,最后一個(gè)的話沒有第二個(gè)參數(shù)會(huì)按四個(gè)空格 我們來看看從后面補(bǔ)全,其實(shí)機(jī)制和從頭部補(bǔ)全差不多,看一下例子 "aa".padEnd(5, "xc") // aaxcx "??!".padEnd(4, "你好") // "??!你好"模板字符串
我們先來看一下什么是字符串模板,注意不要用單雙引號(hào),要用··,對就是那個(gè)
普通的字符串模板
·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++) { %>
`
上面會(huì)被輸出為
我們再來看看下面這個(gè),你們猜函數(shù)會(huì)執(zhí)行嗎
let html = `
5
4
3
2
alert(123)
}
String.raw字符串的模板let s1 = "qwe", s2 = "123" String.raw`${ s1 + s2 }` // qwe123 下面這種是左邊的參數(shù)會(huì)被分為["h","e","l","l","o"],然后就是左邊一個(gè)參數(shù)逗號(hào)右邊一個(gè)開始補(bǔ) String.raw({raw: "hello"}, 123)// h123ello 第二個(gè)參數(shù)為對象的話是不會(huì)被分解的哦 String.raw({ raw: "hello" }, {aa: "ooo"});"h[object Object]ello"
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100974.html
摘要:字符串的擴(kuò)展字符串的遍歷器接口字符串可以被循環(huán)遍歷。即能識(shí)別編號(hào)大于查詢字符串是否包含某個(gè)字符返回布爾值,表示是否找到了參數(shù)字符串。返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。 字符串的擴(kuò)展 1.字符串的遍歷器接口 字符串可以被for...of循環(huán)遍歷。 與es5的比較for循環(huán)雖可以遍歷字符串,但不能識(shí)別大于oxFFFF的編碼; 2.位置 --> 字符/碼點(diǎn) 根據(jù)指定位置返回對應(yīng)...
摘要:循環(huán)遍歷對象自身的和繼承的可枚舉屬性不含屬性。返回一個(gè)數(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)用的時(shí)候會(huì)在內(nèi)存形成一個(gè)調(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)遍歷對象自身的和繼承的可枚舉屬性不含屬性。返回一個(gè)數(shù)組,包含對象自身的所有屬性的鍵名。 showImg(https://segmentfault.com/img/remote/1460000019259004?w=1282&h=1920); 1. 屬性的簡潔表示法 在ES6中 允許直接寫入變量...
摘要:正則的擴(kuò)展參數(shù)為字符串,那么第二個(gè)參數(shù)表示正則表達(dá)式的修飾符,如下等價(jià)于參數(shù)為一個(gè)正則表達(dá)式,這時(shí)返回一個(gè)原有正則表達(dá)式的拷貝。如下調(diào)用調(diào)用調(diào)用調(diào)用修飾符對正則表達(dá)式添加了修飾符,用來正確處理大于的字符。 showImg(https://segmentfault.com/img/bVbrJqm?w=800&h=1200); 1. 正則的擴(kuò)展 參數(shù)為字符串, 那么第二個(gè)參數(shù)表示正則表達(dá)式...
閱讀 1643·2021-10-27 14:13
閱讀 1883·2021-10-11 10:59
閱讀 3381·2021-09-24 10:26
閱讀 1937·2019-08-30 12:48
閱讀 3046·2019-08-30 12:46
閱讀 2043·2019-08-30 11:16
閱讀 1427·2019-08-30 10:48
閱讀 2749·2019-08-29 16:54