(原創) JS擴展運算符 Spread syntax

參考資料:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

https://blog.csdn.net/qyl_0316/article/details/100547868

<!DOCTYPE html>
<html>
<head>
	<title>test spread</title>
</head>
<body>

	test spread

	<script type="text/javascript">
		function sum(x, y, z) {
			return x + y + z;
		}

		const numbers = [1, 2, 3];

		console.log("*********1***********");
		console.log(sum(...numbers));
		// expected output: 6

		console.log("*********2***********");
		console.log(sum.apply(null, numbers));
		// expected output: 6

		console.log("*********3***********");
		console.log(...numbers);

		console.log("*********4***********");
		console.log(...[3]);

		var a = [[1], [2], [3]];
		var b = [...a];
		console.log("*********5***********");
		console.log(a);
		console.log(b);

		var obj1 = { foo: 'bar', x: 42 };
		var obj2 = { foo: 'baz', y: 13 };

		var clonedObj = { ...obj1 };
		// Object { foo: "bar", x: 42 }
		console.log("*********6***********");
		console.log(clonedObj);

		var mergedObj = { ...obj1, ...obj2 };
		// Object { foo: "baz", x: 42, y: 13 }
		console.log("*********7***********");
		console.log(mergedObj);

		var obj = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
		// var array = [...obj]; // TypeError: obj is not iterable
		console.log("*********8***********");
		console.log({...obj});
		// console.log(array);

		var obj = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
		var obj2 = obj;
		obj2.key3 = 'value333';
		console.log("*********9***********");
		console.log(obj2);
		console.log("**********");
		console.log(obj);

		var obj = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
		var obj2 = { ...obj };
		obj2.key3 = 'value333';
		console.log("*********10***********");
		console.log(obj2);
		console.log("**********");
		console.log(obj);

</script>

</body>
</html>






 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章