前端面试题系列之JavaScript面试题三(每天巩固一点点)
发布于 2021-09-07 11:17 ,所属分类:2021面试经验技巧分享
7、[问答题]
使用 for in 循环数组中的元素会枚举原型链上的所有属性,使用什么函数可以过滤这些属性?
解答:使用hasOwnProperty函数。hasOwnProperty()方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。
代码示例:
const object1 = {};
object1.property1 = 42;
console.log(object1.hasOwnProperty('property1')); //true
console.log(object1.hasOwnProperty('toString')); //false
console.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号发布,感兴趣的可以下,谢谢!
相关资源