首页 > 代码库 > 六道JavaScript测验题
六道JavaScript测验题
1、找出数字数组中最大的元素(使用Match.max函数)
1 var a=[123,23432,345,3,34];2 console.log(Math.max.apply(null,a));
2、转化一个数字数组为function数组(每个function都弹出相应的数字)
1 var a=[123,23432,345,3,34];2 a=a.map(function(value){3 return function(){4 alert(value);5 };6 });7 console.log(a[3]());
3、给object数组进行排序(排序条件是每个元素对象的属性个数)
var arr=[ {a:1,b:2,c:3}, {a:1,b:2,c:3,d:4,e:5}, {a:1,b:2}, {a:1,b:2,c:3,d:4}];Object.prototype.propLength=( Object.prototype.hasOwnProperty(‘_count_‘)? function (){ return this._count_; //FF } : function(){ var p,count=0; for(p in this){ if(this.hasOwnProperty(p)){ count++; } } return count;});function compare(obj1,obj2){ return obj1.propLength()-obj2.propLength();}console.log(arr.sort(compare));
4、利用JavaScript打印出Fibonacci数(不使用全局变量)
1 function fibo(n){2 var self=arguments.callee;3 if(n<2){4 return n;5 }6 return self(n-1)+self(n-2);7 }8 console.log(fibo(6));
5、实现如下语法的功能:var a = (5).plus(3).minus(6); //2
1 Number.prototype.plus=function (a){2 return this.valueOf()+a;3 };4 Number.prototype.minus=function (a){5 return this.valueOf()-a;6 };7 var a = (5).plus(3).minus(6);8 console.log(a);
6、实现如下语法的功能:var a = add(2)(3)(4); //9
答案来自园友Gaubee在深入理解JavaScript系列(20):《你真懂JavaScript吗?》答案详解的回答。
1 function add(num){ 2 var self=arguments.callee; 3 num+=~~self; 4 self.num=num; 5 return self; 6 } 7 //valueOf是给运行和控制台用,toString是给alert用 8 add.valueOf=add.toString=function(){return add.num;}; 9 var a = add(2)(3)(4);10 console.log(a);
欢迎批评指正。
六道JavaScript测验题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。