ES6為字串新增了遍歷器接口,使得字串可以被for...of循環遍歷。
for (let codePoint of 'foo') { console.log(codePoint)} // "f"// "o"// "o"
#
#
function lettest() { var jsongs = { "result": [ { "YDFLAG": "1", "YXS": "0", "DPMC": "专属好评率", "MTYDL": "100", "SPFLMC": "蔬菜", "SPMC": "萝卜丝包", "YDRQ": "[2,1]", "PIC_ID": "12918", "SPDJ": "5", "YDBID": "12919", "NUM": "1", "SPJBXX_ID": "12913" }, { "YDFLAG": "2", "YXS": "0", "DPMC": "专属好评率", "MTYDL": "100", "SPFLMC": "蔬菜", "SPMC": "肉包", "YDRQ": "[5]", "PIC_ID": "12911", "SPDJ": "5", "YDBID": "12912", "NUM": "2", "SPJBXX_ID": "12907" }, { "YDFLAG": "3", "YXS": "0", "DPMC": "专属好评率", "MTYDL": "100", "SPFLMC": "蔬菜", "SPMC": "馒头", "YDRQ": "[4]", "PIC_ID": "12905", "SPDJ": "3", "YDBID": "12906", "NUM": "3", "SPJBXX_ID": "12900" }, { "YDFLAG": "4", "YXS": "0", "DPMC": "专属好评率", "MTYDL": "100", "SPFLMC": "蔬菜", "SPMC": "菜包", "YDRQ": "[2,3]", "PIC_ID": "12889", "SPDJ": "4", "YDBID": "12890", "NUM": "4", "SPJBXX_ID": "12884" } ], "signToken": "/v1VqtzUE01JnOFJlHwnXu/IMKsjHL820hMdDHobFJPaE4R8D/VY3Q==", "allNum": "4" }; for (var i of jsongs.result) { console.log(i.SPMC); } //商品名称:萝卜丝包,YDFLAG:1 // 商品名称:肉包,YDFLAG:2 // 商品名称:馒头,YDFLAG:3 // 商品名称:菜包,YDFLAG:4
}
#上面範例範例,是我們常用到的,之前我們都是使用for i++這樣的循環來獲取數據,而現在,我們直接可以使用for of #來減少工作量,提高工作效率
傳統上,JavaScript只有indexOf方法,可以用來確定字串是否包含在另一個字串中。 ES6又提供了三種新方法。
includes():傳回布林值,表示是否找到了參數字串。
startsWith():傳回布林值,表示參數字串是否在來源字串的頭部。
endsWith():傳回布林值,表示參數字串是否在來源字串的尾部。
var s = 'Hello world!'; s.startsWith('Hello') // true s.endsWith('!') // true s.includes('o') // true
這三個方法都支援第二個參數,表示開始搜尋的位置。
var s = 'Hello world!'; s.startsWith('world', 6) // true s.endsWith('Hello', 5) // true s.includes('Hello', 6) // false
#上面程式碼表示,使用第二個參數n時,endsWith的行為與其他兩種方法有所不同。它針對前n個字符,而其他兩個方法針對從第n個位置直到字串結束。
ES2017 引入了字串補全長度的功能。如果某個字串不夠指定長度,會在頭部或尾部補全。 padStart()用於頭部補全,padEnd()用於尾部補全。
'x'.padStart(5, 'ab') // 'ababx' 'x'.padStart(4, 'ab') // 'abax' 'x'.padEnd(5, 'ab') // 'xabab' 'x'.padEnd(4, 'ab') // 'xaba'
padStart的常見用途是為數值補全指定位數。下面程式碼產生10位元的數值字串。
'1'.padStart(10, '0') // "0000000001" '12'.padStart(10, '0') // "0000000012" '123456'.padStart(10, '0') // "0000123456" 另一个用途
#是提示字串格式。
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12" '09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
#傳統的JavaScript語言,輸出範本通常是這樣寫的。
$('#result').append( 'There are <b>' + basket.count + '</b> ' + 'items in your basket, ' + '<em>' + basket.onSale + '</em> are on sale!');
#上面這種寫法相當繁瑣不方便,ES6引入了模板字串解決這個問題。
function resulttemplate() { var basket = { "supplies": [{ "name": "张三" }, { "name": "李四" }, { "name": "lili" }] } var mess = `<table>`; for (var i = 0; i < basket.supplies.length; i++) { mess += `<tr><td> 姓名</td> <td> ${basket.supplies[i].name}</td></tr>`; } mess += `</table>`; $('#result').append(mess); var ddd=`<table>`; for(let j of basket.supplies) { ddd+=`<tr><td>${j.name}</td></tr>`; } ddd+=`</table>`; console.log(ddd); }
#範本字串(template string)是增強版的字串,用反引號(`)標識。 它可以當作普通字串使用,也可以用來定義多行字串,或是在字串中嵌入變數。
所有模板字串的空格和換行,都是被保留的。如果你不想要這個換行,可以使用trim方法來消除它。
以上是ES6 字串的擴展的高頻用法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!