首页 > 网站 > WEB开发 > 正文

JavaScript基础知识----六道有趣的Js基础题以及解答

2024-04-27 14:14:21
字体:
来源:转载
供稿:网友
javaScript基础知识----六道有趣的Js基础题以及解答

题目:

1.找出数字数组中最大的元素(使用Math.max函数)2.转化一个数字数组为function数组(每个function都弹出相应的数字)3.给object数组进行排序(排序条件是每个元素对象的属性个数)4.利用Javascript打印出Fibonacci数(不使用全局变量)5.实现如下语法的功能:var a = (5).plus(3).minus(6); //26.实现如下语法的功能:var a = add(2)(3)(4); //9解答:1.

  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));

另解:

  1. function getArrMax(){                return Math.max.apply(null,a);                }

2.

  1. 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.

  1. function Fib(n){       if(n===1||n===2){return 1;}       else return Fib(n-1)+Fib(n-2);     }/*    console.log(Fib(10));   */

5.

  1. Number.PRototype.plus = function(x){     return this+x;    }    Number.prototype.minus = function(x){     return this-x;    }/*    console.log((5).plus(3).minus(6));  */

6.

  1. function add(num){    var self = arguments.callee;    /* alert(self);//undefined,5,13  ~~的作用*/    num += ~~self;    self.num = num;    return self;}//valueOf是给运行和控制台用,toString是给alert用add.valueOf = add.toString = function(){return add.num};alert(add(5)(8)(6)); //19


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表