前端面试典型例题之ECMAScript6,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.ofES6对数组的扩展,输入的参数代表数组的一个元素

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等服务端语言平起平坐的脚本语言。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值