1、下面程式的執行結果是什麼?請分析原因?
function f({ x = 10 } = {}, { y } = { y: 10 }) {
console.log( x + " " + y +"\n");
}
f();
f(undefined, undefined);
f({}, undefined);
f({}, {});
f(undefined, {});
f({x: 2}, {y: 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);
* var arr2 = Array.of(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等服務端語言平起平坐的指令碼語言。