您好,登錄后才能下訂單哦!
這篇文章主要介紹es6字符串中新增知識有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
es6字符串添加了很多新功能,當然也有很多關于字符串編碼的一些學習性東西,在這里咱們就不多做介紹,介紹一下常用的一些方法
字符串的遍歷接口
es6中字符串擴展了遍歷器接口 for(let i of 'abcdef'){ console.log(i) // a,b,c,d,e,f } 其實看起來和其他的遍歷長的挺像的,那我們來看看它是否除了能遍歷字符串之外,還能否遍歷其它類型呢 那我們來試一下數組類型,會像我們預想的那樣會得到遍歷的值 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 循環遍歷器還可以配合break(直接跳出) continue(跳出繼續執行) return (在函數內使用)配合使用跳出循環 for (let a of '123456') { if (a ==='1') { break } console.log(a) // 1 }
有時間的話大家不妨可以試一下
字符串includes(),startsWith(),endsWith()方法
es5中提供了indexOf方法來確定查找的字符串是否在其中,現在又多了三個,是不是很開心!!!
includes方法返回布爾值,是否在字符串其中
let str = 'this is es6' str.includes('es6')// true 這個方法還支持第二個參數,那就是選擇位置搜索,從0開始算,空格也會算位置,是從當前位置往后搜索,也算當前的位置 let str = 'this is es6' str.includes('i', 5) // true 搜索多個也是可以的,當然如果位置超過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不算是頭部 這個方法也是有第二個參數的 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 重復返回一個新的字符串,重復多少次取決于你的參數
參數是 0 到-1 之間的小數,則等同于 0,-0也算0 abc.repeat(3)// abcabcabc 因為不能小于-1,才會報錯 'abc154789'.repeat(-1) //報錯 大于-1的話會被取整為0,所以會是空的字符串 'abc154789'.repeat(-0.9999999999) //“” NaN也會被當做為0處理 'NaN'.repeat(NaN) // "" 參數也可以為字符串,但是也是空因為下面的字符串會被轉為NaN 'hhh'.repeat('cc') // ''
padStart 我們來先說一下頭部補全 'aa'.padStart(5, 'xc') // xcxaa '啊!'.padStart(4, '你好') // "你好啊!" '好看'.padStart(4, '你長得真') // "你長好看" '好看'.padStart(4) // " 看" 上面的例子是第一個參數是5,表示要5個字符,第二個參數是補全的參數,從頭部補全xcx,’aa‘是不會變的,當然倒數第二個第一個參數也算限制了文字,所以會從左到右選取剩余的長度,最后一個的話沒有第二個參數會按四個空格 我們來看看從后面補全,其實機制和從頭部補全差不多,看一下例子 'aa'.padEnd(5, 'xc') // aaxcx '啊!'.padEnd(4, '你好') // "啊!你好"
我們先來看一下什么是字符串模板,注意不要用單雙引號,要用··,對就是那個
普通的字符串模板
·this is 啊啊啊啊·
多行文本的字符串模板
·哈哈哈,你好啊
我是哈哈·
變量的模板字符串
let a = '你好' ${a}啊 // 你好啊 let str = 'this is' ${str}模板 // this is 模板
還可以使用函數,但是得把你需要的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>
我們再來看看下面這個,你們猜函數會執行嗎
let html = ` <p> <h6 @click=${add()}>5</h6> <h5>4</h5> <h4>3</h4> <h3>2</h3> </p> ` function add() { alert(123) }
let s1 = 'qwe', s2 = '123' String.raw`${ s1 + s2 }` // qwe123 下面這種是左邊的參數會被分為['h','e','l','l','o'],然后就是左邊一個參數逗號右邊一個開始補 String.raw({raw: 'hello'}, 123)// h223ello 第二個參數為對象的話是不會被分解的哦 String.raw({ raw: 'hello' }, {aa: 'ooo'});"h[object Object]ello"
以上是“es6字符串中新增知識有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。