前端面试题系列之JavaScript面试题三(每天巩固一点点)

发布于 2021-09-07 11:17 ,所属分类:2021面试经验技巧分享

7、[问答题]


使用 for in 循环数组中的元素会枚举原型链上的所有属性,使用什么函数可以过滤这些属性?

解答:使用hasOwnProperty函数。hasOwnProperty()方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。

代码示例:

const object1 = {};object1.property1 = 42;
console.log(object1.hasOwnProperty('property1')); //trueconsole.log(object1.hasOwnProperty('toString')); //falseconsole.log(object1.hasOwnProperty('hasOwnProperty')); //false



8、[编程题]


请实现一个 fibonacci 函数,要求其参数和返回值如下所示:


/**

*@desc: fibonacci

*@param: count {Number}

*@return: result {Number} 第 count 个 fibonacci 值,计数从 0 开始

fibonacci 数列为:[1, 1, 2, 3, 5, 8, 13, 21, 34 „]

则 getNthFibonacci(0)返回值为 1

则 getNthFibonacci(4)返回值为 5

*/

function getNthFibonacci(count) {

}

解答:参考程序如下

function getNthFibonacci(count) {    if (count <= 1) {        return 1;    }    return getNthFibonacci(count - 1) + getNthFibonacci(count - 2);}console.log( getNthFibonacci(0) );console.log( getNthFibonacci(4) );




9、[填空题]


在空格①处填上合适的代码使得输出对象中值大于 2 的 key 的数组

var data = {a: 1, b: 2, c: 3, d: 4};

Object.keys(data).filter(function(x) { return ________ ;})

期待输出:[“c” ,” d” ]

解答:此题重点在于理解Object.keys()Array.prototype.filter()这两个函数。

Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。


Array.prototype.filter()方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

参考程序如下:

var data = {a: 1, b: 2, c: 3, d: 4};var result = Object.keys(data).filter(function (x) {    return data[x] > 2;});console.log(result);


看完如果对你有帮助,感谢点击下面的一键三连支持下!

我的个人订阅号(大叔学前端/dashu_fe),文章第一时间在gongzhong号发布,感兴趣的可以下,谢谢!


相关资源