for…of…遍历
for (let codePoint of 'foo') {
console.log(codePoint)
}
// "f"
// "o"
// "o"
注意:
for (let codePoint in 'foo') {
console.log(codePoint)
}
// 0
// 1
// 2
includes(), startsWith(), endsWith()
includes(): 返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
endsWith(): 返回布尔值,表示参数字符串是否在源字符串的尾部。
这三个方法都支持第二个参数,表示开始搜索的位置。
repeat()
repeat方法返回一个新字符串,表示将原字符串重复n次。
参数如果是小数,会被取整。
参数必须大于等于0
参数NaN等同于0。
参数是字符串,则会先转换成数字。
padStart(),padEnd()
ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
如果省略第二个参数,默认使用空格补全长度。
padStart的常见用途是为数值补全指定位数。
模板字符串
若要构造模板字符串,请使用重读符号(也称为反引号)(‘) 替代单引号或双引号括起字符串。下面的代码示例演示一个简单的模板字符串。
`Template strings can include 'single quotes' and "double quotes" inline.`
模板字符串可以在无需使用换行符 (\n) 的情况下包含换行。
`Template strings can include line breaks and don't need the linefeed character.`
字符用于指定模板字符串内的占位符。语法是 {表达式},其中表达式是任意 JavaScript 表达式(如变量或函数),如以下示例中所示。
var name = "Bob";
var str = `Hello ${name}, how are you this fine ${partOfDay()}?`
console.log(str);
function partOfDay () {
var hour = new Date().getHours();
if (hours <= 12) {
return “morning”;
} else if (hours <= 5) {
return “afternoon”;
} else {
return “evening”;
}
}
// Output:
// Hello Bob, how are you this fine afternoon?
带标记的模板函数,它可以通过使用由模板字符串中参数调用的函数来修改此模板字符串的值。第一个参数是字符串文本的数组,由内含的模板字符串表达式分隔;第二个参数是包含模板字符串表达式的值的数组(Rest 参数)。
在以下示例中,带标记的模板函数 buildURL 用于构造 URL。此语法要使用后面紧跟模板字符串的函数名。
function buildURL(strArray, ...valArray) {
var newUrl = strArray[0] + "ja-ja" + "/" + valArray[1] +
"/" + valArray[2];
return newUrl;
}
var lang = "en-us";
var a = "library";
var b = "dn771551.aspx";
// Call the tagged template function.
var url = buildURL`http://msdn.microsoft.com/${lang}/${a}/${b}`;
console.log(url);
// Output:
// http://msdn.microsoft.com/ja-ja/library/dn771551.aspx
如果需要访问传入的原始字符串值,则传递给带标记的模板函数的第一个参数支持可返回传入字符串的原始字符串形式的 raw 属性。
function buildURL(strArray, ...valArray) {
console.log(strArray.raw);
}
var lang = "en-us";
var a = "library";
var b = "dn771551.aspx";
// Call the tagged template function.
var url = buildURL`http://msdn.microsoft.com/${lang}/${a}/${b}`;
// Ouput:
// http://msdn.microsoft.com/
// /
// en-us
// library