JavaScript基础知识----六道有趣的Js基础题以及解答
题目:
1.找出数字数组中最大的元素(使用Math.max函数)
2.转化一个数字数组为function数组(每个function都弹出相应的数字)
3.给object数组进行排序(排序条件是每个元素对象的属性个数)
4.利用JavaScript打印出Fibonacci数(不使用全局变量)
5.实现如下语法的功能:var a = (5).plus(3).minus(6); //2
6.实现如下语法的功能:var a = add(2)(3)(4); //9
解答:
1.
-
var a = [10,1,2,3,4,8,9]; function max(a){ var len = a.length-1; var maxnum=a[len]; while (len--) { maxnum=Math.max(maxnum,a[len]) } return maxnum; } alert(max(a));
另解:
-
function getArrMax(){ return Math.max.apply(null,a); }
2.
-
var getNumFun = []; function toFun(a){ var len = a.length; while (len--) { (function(i){ getNumFun[i] = function(){ alert(a[i]); } } )(len); } } /* toFun(a); getNumFun[5](); */
3.
var objarr = [ {a:2,b:1}, {d:5}, {a:1,b:2,c:3} ]; function rule(o1,o2){ var sizeObj = function(obj){ var size=0; for(var i in obj) size++; return size; } return sizeObj(o1) - sizeObj(o2); } /* objarr.sort(rule); console.log(objarr[0]); */
4.
-
function Fib(n){ if(n===1||n===2){return 1;} else return Fib(n-1)+Fib(n-2); } /* console.log(Fib(10)); */
5.
-
Number.prototype.plus = function(x){ return this+x; } Number.prototype.minus = function(x){ return this-x; } /* console.log((5).plus(3).minus(6)); */
6.
-
function add(num){ var self = arguments.callee; num += ~~self; self.num = num; return self; } add.valueOf = add.toString = function(){return add.num}; /* console.log(add(5)(8)); */
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。