1. 程式人生 > >ES6:三點運算子

ES6:三點運算子

        用途         1. rest(可變)引數             * 用來取代arguments,但比arguments靈活,只能是最後部分形參引數                 function fun(...values){                     console.log(arguments)                     arguments.forEach(function(item,index){                         console.log(item,index)                     })                     console.log(values)                     values.forEach(function(item,index){                         console.log(item,index)                     })                 }                 fun(1,2,3)         2. 擴充套件運算子         let arr1 = [1,3,5]         let arr2 = [2,...arr1,6]         arr2.push(...arr1)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>3點運算子</title>
</head>
<body>
		<!-- 
		用途
		1. rest(可變)引數
			* 用來取代arguments,但比arguments靈活,只能是最後部分形參引數
				function fun(...values){
					console.log(arguments)
					arguments.forEach(function(item,index){
						console.log(item,index)
					})
					console.log(values)
					values.forEach(function(item,index){
						console.log(item,index)
					})
				}
				fun(1,2,3)
		2. 擴充套件運算子
		let arr1 = [1,3,5]
		let arr2 = [2,...arr1,6]
		arr2.push(...arr1)
		 -->
</body>
<script type="text/javascript">
	// function foo(){
	// 	//console.log(arguments)// 偽陣列 所以forEach()報錯
	// 	// arguments.callee() 指向函式本身
	// 	//arguments.forEach(function(item , index){
	// 	//	console.log(item,index);// 報錯
	// 	//})
	// }
	// foo(1,2)
	// 
	

	function foo(...value){
		console.log(value)// 陣列
		value.forEach(function(item,index){
			console.log(item,index)
		})
	}
	foo(1,2)

	// 只能是最後部分的形參
	function foo1(a,...value){
		console.log(value)// 2,3,4,5 因為前邊有一個佔位符 相當於帶走一個形參 
						// 使用三點運算子的時候必須放在最後 
	}
	foo1(1,2,3,4,5)


	let arr1 = [1,6];
	let arr2 = [2,3,4,5];
	// 要求: 兩個數組合併為[1,2,3,4,5,6]
	arr1 = [1,...arr2,6]
	console.log(arr1)// [1,2,3,4,5,6]
	console.log(...arr1)// 1,2,3,4,5,6 相當於把arr1的每一項都拿出來




	
</script>
</html>