题目:

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.

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

JavaScript基础知识----六道有趣的Js基础题以及解答的更多相关文章

  1. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  2. Ajax基础知识 浅析(含php基础语法知识)

    1.php基础语法    后缀名为.php的文件 (1) echo   向页面中输入字符串  <?php    所有php相关代码都要写在<?php ?>这个标签之中 echo &q ...

  3. 【JavaScript从入门到放弃】JS基础-01

    作为一个前端开发人员,JS是我们行走江湖吃饭的家伙.基本上一个前端人员能值多少大洋,就看JS了.虽然各种框架层出不穷,但是归根结底学好原生JS才是硬道理. 学习任何新东西其实都遵循 10000 小时成 ...

  4. Js基础知识(四) - js运行原理与机制

    js运行机制 本章了解一下js的运行原理,了解了js的运行原理才能写出更优美的代码,提高运行效率,还能解决开发中遇到的不理解的问题. 进程与线程 进程是cpu资源分配的最小单位,进程可以包含多个线程. ...

  5. Java基础知识盘点(一)- 基础篇

    基本功 面向对象特征 封装.继承.多态和抽象 1.封装:给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法,来改变它内部的数据. 在Java中,其访问权限有3种修饰符:publi ...

  6. java基础知识(2)---语法基础

    二:java语法基础: 1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名 ...

  7. 关于jq+devexpress基础知识总结(随便的基础)

    //获取某行某列的值 onSelectionChanged: function (selectedItems) { ]; if (data != null) postionno = data.POST ...

  8. web前端基础知识-(六)Django基础

    上面我们已经知道Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Sessi ...

  9. [C# 基础知识系列]专题六:泛型基础篇——为什么引入泛型

    引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...

随机推荐

  1. Html 小插件9 腾讯新闻

    地址:http://minisite.qq.com/others08/ 效果:

  2. Android网络框架技术

    网络相关1. Asynchronous Http Client for Android Android异步Http请求项目地址:https://github.com/loopj/android-asy ...

  3. DAL – RDBMS 的分区

    编辑人员注释:本文章由AzureCAT 云与企业工程组的高级项目经理Shaun Tinline-Jones 和Chris Clayton 共同撰写. "云服务基础"应用程序也称作& ...

  4. 《windows程序设计》学习_3.2:左键的使用

    #include<windows.h> #include "resource.h" LRESULT CALLBACK WndProc (HWND, UINT, WPAR ...

  5. nodejs服务端开发学习笔记

    正在学习中,不断改错... 学习了一段时间nodejs,对其中的很多东西还不是很理解,在网上看过很多的例子,希望通过自己的一些总结让自己了解的更全面些,同时也作为学习笔记留存备忘. 准备工作 node ...

  6. oracle rman异机恢复

      Oracle源主机 Oracle目标主机 主机平台 CentOS6.2(final) CentOs6.2(FInal) 主机名 vick rman IP地址 192.168.1.11 192.16 ...

  7. nbtstat 查询IP地址对应的计算机名称

    使用命令nbtstat -a ipaddress即可,例如:nbtstat -a 192.168.1.2.

  8. foundation 框架 NSString常用总结(二)

    以此作为NSString常用总结(一)的补充 NSString* str = [NSString stringWithFormat:@"I love programing! You, com ...

  9. OptiScroll 公共例子(只修改了滚动条颜色)

    地址:https://github.com/wilsonfletcher/Optiscroll <!DOCTYPE html> <html> <head> < ...

  10. poj 2007 Scrambled Polygon 极角排序

    /** 极角排序输出,,, 主要atan2(y,x) 容易失精度,,用 bool cmp(point a,point b){ 5 if(cross(a-tmp,b-tmp)>0) 6 retur ...