search

Home  >  Q&A  >  body text

javascript - 做了个js测试题,被虐,求解释答案QAQ

在网上看了个js测试题,做完了错的一塌糊涂啊QAQ,好心赛,把其中自己想不明白的题目拎出来了,求大神解答T^T

第2题:

javascriptvar f = function g(){ return 23; };
typeof g();

第5题:

javascript(function f(f){
    return typeof f();
})(function(){ return 1; });

第8题:

javascriptvar f = (function f(){ return "1"; }, function g(){ return 2; })();
typeof f;
怪我咯怪我咯2818 days ago355

reply all(2)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:07:54

    第二题考的是命名函数表达式,函数名称只在函数内部有效。关于 var f的声明提前和考点没太大关系就不多表了。

    第五题就是有点绕而已:

    var a = function() { return 1; };
    f = function(fn) { 
        var b = fn();
        return typeof b;
    }
    f(a);
    

    这样应该好理解很多了吧。

    第八题是考逗号操作符总是返回最后一个,所以其实就是

    typeof (function g(){return 2;})();
    

    reply
    0
  • 迷茫

    迷茫2017-04-10 15:07:54

    第二题:
    这是函数表达式,我们一般都会把匿名函数赋值给变量。但是这题的话是给定了函数名 g ,但是这个函数名相当于是函数里的局部变量,只有在函数内部才能访问!所以函数外部访问会报错。

    第五题:
    这是立即执行函数,这里的参数是一个函数function(){ return 1; }f()即是执行该函数,返回 1 ,所以 typeof 1 就是"number"

    第八题:
    这其实就是考逗号操作符 和立即执行函数了,逗号操作符总是返回最后一个表达式,所以 f =function g(){ return 2; }(); 结果就是 f = 2; ,所以 typeof 2; 返回"number"

    reply
    0
  • Cancelreply