javascript - 做了个js测试题,被虐,求解释答案QAQ
怪我咯
怪我咯 2017-04-10 15:05:54
0
2
365

在网上看了个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;
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
Ty80

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

第五题就是有点绕而已:

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

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

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

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板