摘要:字符串添加了很多新功能,當然也有很多關于字符串編碼的一些學習性東西,在這里咱們就不多做介紹,介紹一下常用的一些方法字符串的遍歷接口中字符串擴展了遍歷器接口其實看起來和其他的遍歷長的挺像的,那我們來看看它是否除了能遍歷字符串之外,還能否遍歷其
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(),padEnd()Es7的字符串自動補全功能
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 = `
<% for(let i=0; i < 3; i++) { %>
`
上面會被輸出為
我們再來看看下面這個,你們猜函數會執行嗎
let html = `
5
4
3
2
alert(123)
}
String.raw字符串的模板let s1 = "qwe", s2 = "123" String.raw`${ s1 + s2 }` // qwe123 下面這種是左邊的參數會被分為["h","e","l","l","o"],然后就是左邊一個參數逗號右邊一個開始補 String.raw({raw: "hello"}, 123)// h123ello 第二個參數為對象的話是不會被分解的哦 String.raw({ raw: "hello" }, {aa: "ooo"});"h[object Object]ello"
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100974.html
摘要:字符串的擴展字符串的遍歷器接口字符串可以被循環遍歷。即能識別編號大于查詢字符串是否包含某個字符返回布爾值,表示是否找到了參數字符串。返回布爾值,表示參數字符串是否在原字符串的頭部。 字符串的擴展 1.字符串的遍歷器接口 字符串可以被for...of循環遍歷。 與es5的比較for循環雖可以遍歷字符串,但不能識別大于oxFFFF的編碼; 2.位置 --> 字符/碼點 根據指定位置返回對應...
摘要:循環遍歷對象自身的和繼承的可枚舉屬性不含屬性。返回一個數組,包含對象自身的所有屬性的鍵名。目前,只有對象方法的簡寫法可以讓引擎確認,定義的是對象的方法。showImg(https://user-gold-cdn.xitu.io/2019/5/21/16ada8456223b0e1); 1. 屬性的簡潔表示法 在ES6中 允許直接寫入變量和函數,作為對象的屬性和方法,使得代碼的書寫更為簡潔。...
摘要:標準入門讀書筆記和命令新增命令,用于聲明變量,是塊級作用域。用于頭部補全,用于尾部補全。函數調用的時候會在內存形成一個調用記錄,又稱為調用幀,保存調用位置和內部變量等信息。等到執行結束再返回給,的調用幀才消失。 《ES6標準入門》讀書筆記 @(StuRep) showImg(https://segmentfault.com/img/remote/1460000006766369?w=3...
摘要:屬性的簡潔表示法在中允許直接寫入變量和函數,作為對象的屬性和方法,使得代碼的書寫更為簡潔。循環遍歷對象自身的和繼承的可枚舉屬性不含屬性。返回一個數組,包含對象自身的所有屬性的鍵名。 showImg(https://segmentfault.com/img/remote/1460000019259004?w=1282&h=1920); 1. 屬性的簡潔表示法 在ES6中 允許直接寫入變量...
摘要:正則的擴展參數為字符串,那么第二個參數表示正則表達式的修飾符,如下等價于參數為一個正則表達式,這時返回一個原有正則表達式的拷貝。如下調用調用調用調用修飾符對正則表達式添加了修飾符,用來正確處理大于的字符。 showImg(https://segmentfault.com/img/bVbrJqm?w=800&h=1200); 1. 正則的擴展 參數為字符串, 那么第二個參數表示正則表達式...
閱讀 1631·2021-10-27 14:13
閱讀 1868·2021-10-11 10:59
閱讀 3367·2021-09-24 10:26
閱讀 1925·2019-08-30 12:48
閱讀 3041·2019-08-30 12:46
閱讀 2033·2019-08-30 11:16
閱讀 1414·2019-08-30 10:48
閱讀 2740·2019-08-29 16:54