六道JavaScript测验题

1、找出数字数组中最大的元素(使用Match.max函数)

1 var a=[123,23432,345,3,34];
2 console.log(Math.max.apply(null,a));

2、转化一个数字数组为function数组(每个function都弹出相应的数字)

1 var a=[123,23432,345,3,34];
2 a=a.map(function(value){
3     return function(){
4         alert(value);
5     };
6 });
7 console.log(a[3]());

3、给object数组进行排序(排序条件是每个元素对象的属性个数)

var arr=[
    {a:1,b:2,c:3},
    {a:1,b:2,c:3,d:4,e:5},
    {a:1,b:2},
    {a:1,b:2,c:3,d:4}
];
Object.prototype.propLength=(
    Object.prototype.hasOwnProperty(‘_count_‘)?
    function (){
        return this._count_; //FF
    }
    :
    function(){
    var p,count=0;
    for(p in this){
        if(this.hasOwnProperty(p)){
            count++;
        }
    }
    return count;
}
);
function compare(obj1,obj2){
    return obj1.propLength()-obj2.propLength();
}
console.log(arr.sort(compare));

4、利用JavaScript打印出Fibonacci数(不使用全局变量)

1 function fibo(n){
2      var self=arguments.callee;
3      if(n<2){
4          return n;
5      }
6      return self(n-1)+self(n-2);
7  }
8  console.log(fibo(6));

5、实现如下语法的功能:var a = (5).plus(3).minus(6); //2

1 Number.prototype.plus=function (a){
2     return this.valueOf()+a;
3 };
4 Number.prototype.minus=function (a){
5     return this.valueOf()-a;
6 };
7 var a = (5).plus(3).minus(6);
8 console.log(a);

6、实现如下语法的功能:var a = add(2)(3)(4); //9

答案来自园友Gaubee深入理解JavaScript系列(20):《你真懂JavaScript吗?》答案详解的回答。

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

欢迎批评指正。

时间: 2024-10-24 20:32:26

六道JavaScript测验题的相关文章

【翻译】Zakas解答Baranovskiy的JavaScript测验题

原文:http://www.nczonline.net/blog/2010/01/26/answering-baranovskiys-javascript-quiz/ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

【实践】js六道有趣的题

1.找出数字数组中最大的元素(使用Math.max函数) 2.转化一个数字数组为function数组(每个function都弹出相应的数字) 3.给object数组进行排序(排序条件是每个元素对象的属性个数) var arr=[{a:1,b:3},{a:2},{a:3,b:4,c:5,d:3},{a:4,b:3,c:4}]; function compare(o1,o2){ var strLen=function(obj){ var num=0; for(var k in obj){ num++

小试牛刀3之JavaScript基础题

JavaScript基础题 1.让用户输入两个数字,然后输出相加的结果. *prompt() 方法用于显示可提示用户进行输入的对话框. 语法: prompt(text,defaultText) 说明: 如果用户单击提示框的取消按钮,则返回 null.如果用户单击确认按钮,则返回输入字段当前显示的文本. 在用户点击确定按钮或取消按钮把对话框关闭之前,它将阻止用户对浏览器的所有输入.在调用 prompt() 时,将暂停对 JavaScript 代码的执行,在用户作出响应之前,不会执行下一条语句. *

【Linux探索之旅】第三部分测验题

内容简介 1.第三部分测验题 2.第四部分第一课:压缩文件,解压无压力 第三部分测验题 wc命令做不到以下哪一项? A. 统计单词数 B. 统计行数 C. 为文件内容排序 用grep命令搜索文本,何时需要用双引号包裹搜索的关键字? A. 关键字超过10个字符 B. 关键字是正则表达式 C. 关键字包含空格 重定向符号>>,在文件不存在时,会创建文件吗? A. 会 B. 不会 2>&1表示什么? A. 使标准错误输出与标准输出重定向到同一个地方 B. 将标准错误输出重定向到文件 C

JavaScript算法题之–随机数的生成

JavaScript算法题之–随机数的生成 需求描述:从一组有序的数据中生成一组随机并且不重复的数,类似于简单的抽奖程序的实现. 先来生成一个有序的数组: 1 var arr = [], 2     length = 100, 3     i = 0; 4   5 for( ; i < length; i++ ){ 6     arr.push( i ); 7 } 从一个长度为 100 的有序数组中随机拿出 10 个随机的数,并且不能有重复. 方法1:随机抽取法 01 var gRandomAr

FCC上的javascript算法题之中级篇

FCC中的javascript中级算法题解答 中级算法的题目中用到了很多js的知识点,比如迭代,闭包,以及对json数据的使用等等,现在将自己中级算法的解答思路整理出来供大家参考讨论.欢迎大家提出新的思路,写出更简单的解法. 1.给一个包含两个数字的数组.返回这两个数字和它们之间所有数字的和. 说明:最小的数字并非总在最前面 如:sumAll([4, 1]) 应该返回 10. sumAll([5, 10]) 应该返回 45. function sumAll(arr) { var max=Math

JavaScript编程题(含腾讯2016校招题)

作者:ManfredHu 链接:http://www.manfredhu.com/2016/04/02/15-veryGoodForUsing/ 声明:版权所有,转载请保留本段信息,否则请不要转载 几道觉得挺有意思的编程题,感觉做下来,自己对一些新方法的看法有了新的变化. 比如indexOf,reduce,Array.isArray,forEach这些方法,以前一看到兼容性是IE9+就有点害怕,项目中不敢用,导致后面越来越陌生,不过现在一想的话.其实只要用Polyfill或者提前fix掉就可以了

44个 Javascript 变态题解析 (上\下)

第1题 ["1", "2", "3"].map(parseInt) 知识点: Array/map Number/parseInt JavaScript parseInt 首先, map接受两个参数, 一个回调函数 callback, 一个回调函数的this值 其中回调函数接受三个参数 currentValue, index, arrary; 而题目中, map只传入了回调函数--parseInt. 其次, parseInt 只接受两个两个参数 s

44个 Javascript 变态题解析

原题来自: http://javascript-puzzlers.herokuapp.com/ 读者可以先去做一下感受感受. 当初笔者的成绩是 21/44... 当初笔者做这套题的时候不仅怀疑智商, 连人生都开始怀疑了.... 不过, 对于基础知识的理解是深入编程的前提. 让我们一起来看看这些变态题到底变态不变态吧! 第1题 ["1", "2", "3"].map(parseInt) 知识点: Array/map Number/parseInt