转载:http://www.bubuko.com/infodetail-20477.html

题目一:找出数字数组中最大的元素

  1.  
    var arr=[0,1,2,3,4,5,6,7,8,9];
  2.  
    console.log(Math.max.apply(null,arr))

题目二:转化一个数字数组为function数组(每个function都弹出相应的数字)

for循环闭包的问题

  1.  
    var arr=[0,1,2,3,4,5,6,7,8,9],arrFunc = [];
  2.  
    for(var i = 0, l = arr.length; i < l; i++){
  3.  
    arrFunc.push((function(i) {
  4.  
    return function() {
  5.  
    console.log(arr[i]);
  6.  
    }
  7.  
    })(i))
  8.  
    }

题目三:给object数组进行排序(排序条件是每个元素对象的属性个数)

  1.  
    Object.prototype.myLength = function(){
  2.  
    var length = 0;
  3.  
    for(var i in this){
  4.  
    length ++;
  5.  
    }
  6.  
    return length;
  7.  
    }
  8.  
    var objArr = [
  9.  
    {a:1, b:2, c:5, d:7, e:8, g:0, h:12, i:5, v:9, w:9, x:9, y:9, z: 15},
  10.  
    {a:2, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, l:9, m:9, n:0, o:1, p:9, x:9, y:9, z:9 },
  11.  
    {a:3, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, l:9, m:9, n:0, o:1, p:9, q:0 },
  12.  
    {a:4, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, w:9, x:9, y:9, z:9 },
  13.  
    {a:5, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, v:9, w:9, x:9, y:9, z:9 },
  14.  
    {a:6, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, l:9, m:9, n:0, o:1, p:9, q:0, r:8, s:9, t:9, z:9 },
  15.  
    {a:7, b:2, c:5, d:7, e:8, x:9, y:9, z:9 }
  16.  
    ];
  17.  
    // arr before sort
  18.  
    var numArr1 = []
  19.  
    for(var i = 0, l = objArr.length; i < l; i++ ){
  20.  
    numArr1.push( objArr[i].myLength() )
  21.  
    }
  22.  
    console.log(numArr1.join(" ")) //result
  23.  
    // arr after sort
  24.  
    objArr.sort(function(a,b){
  25.  
    // stable sort
  26.  
    // return (a.myLength() > b.myLength()) === true? 1:-1;
  27.  
    // unstable sort
  28.  
    return (a.myLength() >= b.myLength()) === true? 1:-1;
  29.  
    // return a.myLength() - b.myLength();
  30.  
    })
  31.  
    var numArr2 = []
  32.  
    for(var i = 0, l = objArr.length; i < l; i++ ){
  33.  
    // console.log(i,l,objArr[i].myLength());
  34.  
    numArr2.push( objArr[i].myLength() )
  35.  
    }
  36.  
    console.log(numArr2.join(" ")) //result

题目四:利用JavaScript打印出Fibonacci数(不使用全局变量)

  1.  
    var fibonacci = (function(){
  2.  
    var s = [];
  3.  
    var fun = function(x) {
  4.  
    if(s[x]){
  5.  
    return s[x];
  6.  
    }
  7.  
    if(x < 0) {
  8.  
    throw "Can‘t be negative";
  9.  
    return ;
  10.  
    }
  11.  
    else if(x === 0 || x === 1) {
  12.  
    s[x] = s[x] || x;
  13.  
    return s[x];
  14.  
    }
  15.  
    else{
  16.  
    s[x] = ( fun(x - 1) + fun(x - 2) );
  17.  
    return s[x];
  18.  
    }
  19.  
    };
  20.  
    fun.print = function() {
  21.  
    console.log(s.join(" "));
  22.  
    }
  23.  
    fun.printLast = function() {
  24.  
    // console.log(s.length);
  25.  
    return(s[s.length-1]);
  26.  
    }
  27.  
    window.s = s;
  28.  
    return fun;
  29.  
     
  30.  
    })()
  31.  
    console.time(200);
  32.  
    console.log(fibonacci(200));
  33.  
    console.log(fibonacci.printLast());
  34.  
    console.log(fibonacci.print());
  35.  
    console.timeEnd(200);
  1.  
    var fibonacci2 = function(x){
  2.  
    if(x < 0) {
  3.  
    throw "Can‘t be negative";
  4.  
    return ;
  5.  
    }
  6.  
    if(x === 0 || x === 1) {
  7.  
    return x;
  8.  
    }
  9.  
    var num = ( fibonacci2(x - 1) + fibonacci2(x - 2) )
  10.  
    return num;
  11.  
    }
  12.  
    console.time(32);
  13.  
    console.log(fibonacci2(32));
  14.  
    console.timeEnd(32);

题目五:实现如下语法的功能:var a = (5).plus(3).minus(6);

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

题目六:实现如下语法的功能:var a = add(2)(3)(4);

  1.  
    function add(x) {
  2.  
    var mid;
  3.  
    mid = x || 0;
  4.  
    function addObj(x) {
  5.  
    x = x || 0;
  6.  
    mid = mid + x;
  7.  
    return addObj;
  8.  
    }
  9.  
    addObj.valueOf = function() {
  10.  
    return mid;
  11.  
    }
  12.  
    addObj.toString = function() {
  13.  
    return mid;
  14.  
    }
  15.  
    return addObj;
  16.  
    }
  17.  
    //call the obj.valueOf function
  18.  
    console.log(add(2));
  19.  
    console.log(add(2)(3));
  20.  
    console.log(add(2)(3)(4));
  21.  
    console.log(add(2)(3)(4)(5));
  22.  
     
  23.  
    //call the obj.toString function
  24.  
    alert(add(2));
  25.  
    alert(add(2)(3));
  26.  
    alert(add(2)(3)(4));
  27.  
    alert(add(2)(3)(4)(5));

js的6道基础题(笔试常考题)的更多相关文章

  1. 各位大佬Python的第一部分道基础题已经整理好了,希望大家面试的时候能用的上。

    Python的第一部分道基础题,希望大家面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途 ...

  2. 『ACM C++』Virtual Judge | 两道基础题 - The Architect Omar && Malek and Summer Semester

    这几天一直在宿舍跑PY模型,学校的ACM寒假集训我也没去成,来学校的时候已经18号了,突然加进去也就上一天然后排位赛了,没学什么就去打怕是要被虐成渣,今天开学前一天,看到最后有一场大的排位赛,就上去试 ...

  3. 朋友去面试Python工程师,又带回来几道基础题,Python面试题No10

    第1题: print 调用 Python 中底层的什么方法? print print() 用 sys.stdout.write() 实现 import sys print('hello') sys.s ...

  4. Java基础知识强化11:多态的两道基础题

    1.第1题 class Base { public void method() { System.out.print("Base method"); } } class Child ...

  5. 关于js的几道经典题(作用域、原型链等)自己做的

    1. function test() { var a = 1; setTimeout(function() { alert(a); a = 3; }, 1000); a = 2; setTimeout ...

  6. 关于SQL的几道小题详解

    关于SQL的几道小题详解 当我们拿到题目的时候,并不是急于作答,那样会得不偿失的,而是分析思路,采用什么方法,达到什么目的,还要思考有没有简单的方法或者通用的方法等等,这样才会达到以一当十的效果,这样 ...

  7. 《JS修炼之道》—— 读后总结

    本篇是基于<JS修炼之道>的记录性与总结性的文章,这本书从多种框架的角度,讲述了JS开发中的一些实用技巧. 比如Prototype,JQuery,Mootools,YUI,Dojo,Ext ...

  8. 小试牛刀2:JavaScript基础题

    JavaScript基础题 1.网页中有个字符串“我有一个梦想”,使用JavaScript获取该字符串的长度,同时输出字符串最后两个字. 答案: <!DOCTYPE html PUBLIC &q ...

  9. [2]十道算法题【Java实现】

    前言 清明不小心就拖了两天没更了-- 这是十道算法题的第二篇了-上一篇回顾:十道简单算法题 最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下, ...

随机推荐

  1. EF--EntityState相互转换

    EF对数据做什么样的操作,是根据EF的上下文实体状态决定,实体状态有以下5种状态,下面我们就分别看下这5种状态 数据准备,我们看到学生表里有20000名学生记录,最后1位学生的学生编号为0000020 ...

  2. es5和es6中如何处理不确定参数

    场景:求出不定参数的总数和 //利用arguments function sum () { let num = 0 //Array.prototype.forEach.call(arguments,f ...

  3. SPFA的优化一览

    目录 序 内容 嵬 序 spfa,是一个早已没人用的算法,就像那些麻木的人, 可谁有知道,他何时槃涅 一个已死的算法 ,重生 内容 关于\(NOI2018D1T1\)的惨案,为了以防spfa被卡. 关 ...

  4. 我国自主开发的编程语言“木兰”居然是一个披着“洋”皮的Python!

    究竟是真“自主”,还是又一个披着“洋”皮的“红芯浏览器”? ​ 作者 | 沉迷单车的追风少年 出品 | CSDN博客 昨天看到新闻: ! ​ 心头一震,看起来很厉害啊!毕竟前几天美国宣布要对中国AI软 ...

  5. Spring IoC Container源码分析(二)-bean初始化流程

    准备 Person实例 @Data public class Person { private String name; private int age; } xml bean配置 <?xml ...

  6. PAT - A1073

    1073 Scientific Notation (20point(s)) 小数点移动的边界条件 小数点左移 超过数据左边界 小数点右移 未超过数据右边界 超过数据右边界 +0.1E+2 --> ...

  7. 3级搭建类301-Oracle 11g RAC 双节点搭建(11.2.0.4)非公

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...

  8. 风变编程笔记(一)-Python基础语法

    第0关  print()函数与变量 1. print()函数print()函数:告诉计算机,把括号的内容显示在屏幕上 # 不带引号 print(1+1) # 让计算机读懂括号里的内容,打印最终的结果 ...

  9. 【Unity|C#】基础篇(14)——预处理指令(#)

    [学习资料] <C#图解教程>(第23章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...

  10. 函数节流-歪说js

    歪谈js 起因: 夜深人静,月朗星稀.'window.onresize 事件' 与 '浏览器'在大战300回合,console.log('1') 1s 十次,然后就结束了,一个悲伤的故事. 事实证明太 ...