es6**現了三個點的寫法,初次看到一臉懵逼,現在讓我們好好來搞清楚這三個點...
首先需要了解的是在es6中新增了擴充套件運算子和rest引數,而這兩個都是用...三個點來表示的(麻蛋就不能用不同的表示嗎!)
第二需要了解的是擴充套件運算子(spread)好比 rest 引數的逆運算,為啥這麼說呢?
擴充套件運算子是將乙個陣列轉為用逗號分隔的引數序列。
rest引數(形式為...變數名
),用於獲取函式的任意數目的引數。
這樣說來還是有點抽象,下面看**吧
// 擴充套件運算子
// 將乙個陣列轉為用逗號分隔的引數序列。
// 示例1
console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5
// 示例2
function add(x, y)
const numbers = [4, 38];
add(...numbers) // 42
// 示例3
function add(...values)
return sum;
}add([2,3,5]) // 02,3,5
// rest引數
// 用於接收函式任意數目的引數
// ...values是乙個陣列,也叫rest引數,它接收了3個引數,將這3個引數放入陣列中使用
function add(...values)
return sum;
}add(2, 5, 3) // 10
從示例上來看,...到底是rest引數還是擴充套件運算子,要看...後面跟的是陣列還是乙個非陣列變數,如果是陣列,則...是擴充套件運算子,如果是非陣列變數,則是rest引數。 (這樣理解有問題)
上面的舉例只是粗淺的認識,下面看下多了rest引數和擴充套件運算子對實際開發有什麼好處呢?
// 1、數字排序
// rest引數語法
const sortnumber = (...values) => values.sort();
console.log(sortnumber(2,6,4,7,5,1)); // [1,2,4,5,6,7]
// 普通寫法
// 普通寫法需要先將arguments轉為陣列後才能使用sort排序
function sortnumbers()
console.log(sortnumber(2,6,4,7,5,1)); // [1,2,4,5,6,7]
// 2、複製陣列
// 擴充套件運算子
let arr = [1,2];
let arr2 = [...arr];
arr2[1] = 3;
console.log(arr); // [1,2]
console.log(arr2); // [1,3]
// 普通寫法
let arr = [1,2];
let arr2 = arr.concat();
arr2[1] = 3;
console.log(arr); // [1,2]
console.log(arr2); // [1,3]
// 3、求陣列中最大值
// 擴充套件運算子
console.log(math.max(...[1,5,3,5,7,6])) // 7
// 普通寫法
寫完了感覺這個知識點還是有點模糊,以後開發中多用吧,有了新的理解再來補充! es6 擴充套件運算子 三個點( )
看了阮大大的文章,發現很多都有運算子 暫且叫運算子 三個點點。於是查了一下。其實看起來這樣用也很6 乾貨如下 表面意思 擴充套件運算子 spread 是三個點 它好比 rest 引數的逆運算,將乙個陣列轉為用逗號分隔的引數序列。該運算子主要用於函式呼叫。function push array,ite...
es6 擴充套件運算子 三個點( )
擴充套件運算子 spread 是三個點 它好比 rest 引數的逆運算,將乙個陣列轉為用逗號分隔的引數序列。console.log 1,2,3 1 2 3 console.log 1,2,3,4 5 1 2 3 4 5 document.queryselectorall div 該運算子主要用於函式...
ES6 拓展運算子 三個點
es6中引入擴充套件運算子 它用於把乙個陣列轉化為用逗號分隔的引數序列,它常用在不定引數個數時的函式呼叫,陣列合併等情形。因為typescript是es6的超集,所以typescript也支援擴充套件運算子。1 可變引數個數的函式呼叫function push array,items functio...