JavaScript基础知识

题目:

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

解答:

    var a = [10,1,2,3,4,8,9];

1    function max(a){ 2        var len = a.length-1; 3        var maxnum=a[len]; 4        while (len--) { 5             maxnum=Math.max(maxnum,a[len]) 6        } 7        return maxnum; 8    } 9    alert(max(a));

另解:

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

2.  

1    var getNumFun = []; 2    function toFun(a){ 3        var len = a.length; 4        while (len--) { 5            (function(i){ 6                 getNumFun[i] = function(){ 7                     alert(a[i]); 8                 } 9             })(len); 10        } 11     } 12     toFun(a); 13     getNumFun[5]();

3.

1var objarr = [{a:2,b:1}, {d:5},{a:1,b:2,c:3} ]; 2function rule(o1,o2){ 3       var sizeObj = function(obj){ 4          var size=0; 5          for(var i in obj) size++; 6          return size; 7       } 8       return sizeObj(o1) - sizeObj(o2); 9} 10/*  objarr.sort(rule); 11    console.log(objarr[0]);        */

4.

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

5.

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

6. 

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

注:

1~~其实是一种利用符号进行的类型转换,转换成数字类型 2~~true == 1 3~~false == 0 4~~"" == 0 5~~[] == 0 6 7~~undefined ==0 8~~!undefined == 1 9~~null == 0 10~~!null == 1
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang