• js笔试题(不定期更新)


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

    Math.max.apply(this, arr)
    View Code

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

    for(var i=0;i<arr.length;i++){
        var tmp=arr[i];
        arr[i]=function(tmp){
            return function(){
                alert(tmp);
            }
        }(tmp)
    }
    或者
    
    arr.map(function(e){
        return function(){alert(e)};
    });
    View Code

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

    objArray.sort(function(a,b){
        return Object.keys(a).length-Object.keys(b).length;
    });
    View Code

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

    function Fibonacci(n) {
        if(n==0||n==1){
            return n;
        }
        return Fibonacci(n-1)+Fibonacci(n-2);
    }
    
    Fibonacci(5);
    View Code

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

    Number.prototype.plus=function(n){
        return this+n;
    }
    Number.prototype.minus=function(n){
        return this-n;
    }
    View Code

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

    //判断返回的是函数还是值
    function add(n){
        var f=function(m){
            return add(n+m);
        };
        f.toString=f.valueOf=function(){
            return n;
        };
        return f;
    }
    View Code

    7 变量提升

    if (!("a" in window)) {
        var a = 1;
    }
    alert(a);
    //[alert: undefined]
    View Answer 

     

    8 变量对象

    var a = 1,
        b = function a(x) {
            x && a(--x);
        };
    alert(a);
    // [alert: 1]
    // 优先级: 函数的形参 > 函数申明 > 变量申明
    // 相当于函数表达式   b = function(x) {
    //        x && b(--x);
    //    };
    View Answer
    function a(x) {
        return x * 2;
    }
    var a;
    alert(a);
    // alert: function a(x) {
    //     return x * 2;
    // }
    View Answer
    var f = function g(){ return 23; }; 
    typeof g;
    // Uncaught ReferenceError: g is not defined
    // (f)引用了函数,而(g)只在函数内部有意义
    ViewAnswer

    9  Arguments对象

    function b(x, y, a) {
        arguments[2] = 10;
        alert(a);
    }
    b(1, 2, 3);
    function b(x, y, a) {
        arguments[2] = 10;
        alert(a);
    }
    b(1, 2);
    // alert: 10 和 alert:undefined
    
    // properties-indexes 的值和实际传递进来的参数之间是共享的。
    // 这个共享其实不是真正的共享一个内存地址,而是2个不同的内存地址,使用JavaScript引擎来保证2个值是随时一样的,当然前提是这个索引值要小于传入的参数个数。
    View Answer
    var foo = {  
      bar: function() { return this.baz; },  
      baz: 1 
    }; 
    
    (function(){  
      return typeof arguments[0](); 
    })(foo.bar);
    // "undefined"
    // this指向了arguments
    View Answer

    10 This

    function a() {
        alert(this);
    }
    a.call(null);
    // alert: [object Window]
    
    // 如果第一个参数传入的对象调用者是null或者undefined的话,call方法将把全局对象作为this的值。
    View Answer

     

    11 delete

    (function(x){ 
      delete x; 
      return x; 
    })(1);
    // 1
    // arguments和声明的变量、函数不能被delete删除,内部属性configurable的值为false
    View Answer

    12

    var f = (function f(){ return "1"; }, function g(){ return 2; })(); 
    typeof f;
    // "number"
    // 由逗号分隔的表达式,它们从左到右进行计算,但只有最后一个表达式的结果保存
    View Answer

     

    13

    var x = 1; 
    if (function f(){}) { 
      x += typeof f; 
    } 
    x;
    // ”1undefined“
    // function f(){}返回值为undefined,为什么能进入判断?
    View Answer

     

     14

    function f(){ return f; } 
    new f() instanceof f;
    // false
    // new f()===f;返回true
    View Answer

     

    44道JS难题

  • 相关阅读:
    Swift入门篇-Hello World
    Swift入门篇-swift简介
    Minecraft 插件 world edit 的cs 命令
    搭建本地MAVEN NEXUS 服务
    MC java 远程调试 plugin 开发
    企业内部从零开始安装docker hadoop 提纲
    javascript 命令方式 测试例子
    ca des key crt scr
    JSF 抽象和实现例子 (函数和属性)
    form 上传 html 代码
  • 原文地址:https://www.cnblogs.com/wanghuohuo/p/7424130.html
Copyright © 2020-2023  润新知