溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

es6字符串中新增知識有哪些

發(fā)布時間:2020-12-05 11:13:59 來源:億速云 閱讀:173 作者:小新 欄目:web開發(fā)

這篇文章主要介紹es6字符串中新增知識有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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ù)組類型,會像我們預(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接口在這里就不多說了,以后的文章會對它進行講解的

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)在又多了三個,是不是很開心!?。?br/>

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的真實位置會查找不到
   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

其實這個和上邊的方法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的字符串自動補全功能

padStart 我們來先說一下頭部補全

'aa'.padStart(5, 'xc') // xcxaa
'啊!'.padStart(4, '你好') // "你好啊!"
'好看'.padStart(4, '你長得真') // "你長好看"
'好看'.padStart(4) // "   看"
上面的例子是第一個參數(shù)是5,表示要5個字符,第二個參數(shù)是補全的參數(shù),從頭部補全xcx,’aa‘是不會變的,當(dāng)然倒數(shù)第二個第一個參數(shù)也算限制了文字,所以會從左到右選取剩余的長度,最后一個的話沒有第二個參數(shù)會按四個空格

我們來看看從后面補全,其實機制和從頭部補全差不多,看一下例子
'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 = `
   <ul> <% for(let i=0; i < 3; i++) { %>
   <li><%= i %></li>
 <% } %>
</ul>`

上面會被輸出為

 <ul>   
   <li>0</li>
   <li>1</li>
   <li>2</li>
</ul>

我們再來看看下面這個,你們猜函數(shù)會執(zhí)行嗎

 let html = `
   <p>
   <h6 @click=${add()}>5</h6>
   <h5>4</h5>
   <h4>3</h4>
   <h3>2</h3>
</p>
   `
   function add() {
   alert(123)
}

String.raw字符串的模板

 let s1 = 'qwe', s2 = '123'
 String.raw`${ s1 + s2 }` // qwe123
 
 下面這種是左邊的參數(shù)會被分為['h','e','l','l','o'],然后就是左邊一個參數(shù)逗號右邊一個開始補
 String.raw({raw: 'hello'}, 123)// h223ello
 
 第二個參數(shù)為對象的話是不會被分解的哦
 String.raw({ raw: 'hello' }, {aa: 'ooo'});"h[object Object]ello"

以上是“es6字符串中新增知識有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI