學習記錄 - ES6(2020-12-06)

qq_39090575發表於2020-12-05

1、下面程式的執行結果是什麼?請分析原因?

function f({ x = 10 } = {}, { y } = { y: 10 }) {
	console.log( x + " " + y +"\n");
}
f();//10 10  
f(undefined, undefined);//10 10  
f({}, undefined);//10 10  
f({}, {});//10 undefined  
f(undefined, {});//10 undefined  
f({x: 2}, {y: 3});//2 3
* 知識點:引數預設值,解構賦值
* f() - 沒有引數,x取預設值10,y取解構賦值10
* f(undefined, undefined) - 兩個引數都是undefined,x取預設值10,y取解構賦值10
* f({}, undefined) - 一個空物件,一個undefined,x取預設值10,y取解構賦值10
* f({}, {}) - 兩個空物件,x取預設值10,y取解構賦值,空物件,沒有屬性名相同的屬性,y為undefined
* f(undefined, {}) - 一個undefined,一個空物件,x取引數值10,y取解構賦值,空物件,沒有屬性名相同的屬性,y為undefined
* f({x: 2}, {y: 3}) - 兩個物件,都有對應的屬性,x、y都取引數解構賦值,x為2,y為3

2.Array.from方法的作用是什麼

* 把類陣列轉化為陣列

3.Array.of和使用Array()或new Array()構建陣列例項有什麼區別

* new Array的引數代表生成陣列的長度
* Array.of是Array的擴充套件,輸入的引數代表陣列的一個元素

* var arr = new Array(10);//代表長度為10的空陣列
* var arr2 = Array.of(10);//[10]

4.下面程式執行結果是什麼?

function push(array, ...items) {
	items.forEach(function(item) {
		array.push(item);
		console.log(item);
	});
}
var a = [1,2];
push(a, 1, 2, 3)
* push(a, 1, 2, 3) -> push([1, 2], 1, 2, 3)
* 輸出:
	1
	2
	3
* array:[1, 2]
* items:[1, 2, 3]
* forEach遍歷items,輸出items的每一項

5.下面程式執行結果是什麼?

const headAndTail = (head, ...tail) => [head, tail];
headAndTail(6, 2, 3, 4, 5)
* 輸出:
	[6, [2, 3, 4, 5]]
* head:6
* tail:[2, 3, 4, 5]

6.node是什麼?

* Node是一個基於Chrome V8引擎的JavaScript執行環境;
* 是一個讓JavaScript執行在服務端的開發平臺,它讓JavaScript成為與PHP、Python、Perl、Ruby等服務端語言平起平坐的指令碼語言。