标签:
题目:
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)); */
JavaScript基础知识----六道有趣的Js基础题以及解答
标签:
原文地址:http://www.cnblogs.com/xianxm/p/4205726.html