1. ``
使用``包裹的字符串,仍然是字符串,但區(qū)別' ' 和 " "擁有更多的功能
1.多行字符串
let message = `Multiline
string`;
console.log(message); // "Multiline
// string"
console.log(message.length); // 16
2.產(chǎn)生替換位
let name = "Nicholas",
message = `Hello, ${name}.`;
console.log(message); //Hello, Nicholas.
3.標(biāo)簽化模板
模板字符串的一種更高級(jí)的形式稱為帶標(biāo)簽的模板字符串。它允許您通過標(biāo)簽函數(shù)修改模板字符串的輸出。標(biāo)簽函數(shù)的第一個(gè)參數(shù)是一個(gè)包含了字符串字面值的數(shù)組(在本例中分別為“Hello”,“world”和"");第二個(gè)參數(shù),在第一個(gè)參數(shù)后的每一個(gè)參數(shù),都是已經(jīng)被處理好的替換表達(dá)式(在這里分別為“15”和“50”)。 最后,標(biāo)簽函數(shù)返回處理好的字符串。在下面的例子中,命名這個(gè)標(biāo)簽并沒有什么特殊的地方,這個(gè)函數(shù)的名字可以是任何你想要的。
var a = 5;
var b = 10;
function tag(strings, ...values) {
console.log(strings[0]); // "Hello "
console.log(strings[1]); // " world "
console.log(strings[2]); // ""
console.log(values[0]); // 15
console.log(values[1]); // 50
return "Bazinga!";
}
tag`Hello ${ a + b } world ${ a * b}`;
// "Bazinga!"
2.箭頭函數(shù) =>
1.this與閉包
2.簡寫
在Array類的方法很常見
let timeOut = setTimeout(
() => next(action),
action.meta.delay
)
3.解構(gòu)
4.擴(kuò)展語句
1.用于函數(shù)調(diào)用
myFunction(...iterableObj)
2.復(fù)制一個(gè)數(shù)組
let arr = [1, 2, 3];
let arr2 = [...arr]; // 就像是 arr.slice()
arr2.push(4);
console.log(arr2) ;// [1, 2, 3, 4]
// arr 不受影響
3.一個(gè)更好的連接數(shù)組的方法
let [arr1, arr2] = [[0, 1, 2], [3, 4, 5]];
//直接連接
console.log([...arr1, ...arr2]);
let parts = ['shoulder', 'knees'];
let Tshirts = ['Lee', 'Nike'];
let lyrics = ['head', ...parts, 'and', 'toes']; //可以在任何位置
4.將類數(shù)組對象轉(zhuǎn)換成數(shù)組
var nodeList = document.querySelectorAll('div');
var array = [...nodeList];
如果需要用[...nodeList],則確保nodeList為數(shù)組或者可遍歷對象(iterables)
(未完待續(xù))