js练习题第9天 答案及解析

本篇文章是js基础练习题第九天的答案及解析部分,纯题目部分请移步js基础练习题 第9天

正文

1.分析以下代码:

1
var arr = new Array("3");
运行后arr.length = __________, arr[1] = __________。

答案:1、undefined

1
2
arr[arr.length] = 4;    
arr[arr.length] = 5;
现在,arr = __________。

答案:["3", 4, 5]

当向Array函数中传入数字参数时,会被解析为数组的初始长度值;传入其他参数时,解析为数组项的值。


2.分析以下代码。
1
2
var arr = [0, 15, 10, 1, 5];
arr.sort();
代码运行后,arr = __________。

答案:[0, 1, 10, 15, 5]

sort函数默认采用的是字符的Unicode编码方式进行升序排序。


3.要实现数组中的值按数值大小降序排序,应如何编写代码?以第2题中的arr为例。

答案:

1
2
var arr = [0, 15, 10, 1, 5];
arr.sort((a, b) => b-a);

sort函数通过sortBy回调函数,可实现自定义排序。函数中带有两个参数,代表数组中的前后元素。如果计算后(a-b)> 0,就是升序,(b-a)> 0,就是降序


4.简要阐述call( )apply( )的作用和异同点。

callapply都是在特定的作用域中调用函数,它们都能够扩充函数运行的作用域;除了接受参数的方式不同外,它们并没有区别;使用call方法时,传递给函数的参数必须逐个列出来,而apply接收的是参数数组。


5.
typeof(Number("42") = __________,
typeof(new Number("42")) = __________,
new Number("42") instanceof Number = __________,
Number("42") instanceof Number = __________。

答案:number、object、true、false


6.试解释什么叫做递归函数然后利用递归设计一个阶乘函数。

递归函数是“自己调用自己”的函数,执行递归函数将反复的调用其自身,直到满足某个条件才结束调用。
1
2
3
4
5
6
7
function factorial(num) {
if(num <= 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}

说明

  1. 题目中出现的JS指的是采用ECMAScript 2015及之后标准的JavaScript
  1. 答案中,若有错误和需完善的地方,可在下方留言反馈哈~~

  2. 查看纯习题版,请点击js基础练习题 第9天

--本文结束 感谢阅读--
创作十分不易,原创更应鼓励