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是ES6对数组的扩展,输入的参数代表数组的一个元素
var arr = new Array(10);// 长度为10的空数组
var arr2 = Array.of(10);//[10],长度为1,值为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等服务端语言平起平坐的脚本语言。