在网上看了个js测试题,做完了错的一塌糊涂啊QAQ,好心赛,把其中自己想不明白的题目拎出来了,求大神解答T^T
第2题:
javascript
var f = function g(){ return 23; }; typeof g();
第5题:
javascript
(function f(f){ return typeof f(); })(function(){ return 1; });
第8题:
javascript
var f = (function f(){ return "1"; }, function g(){ return 2; })(); typeof f;
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;})();
迷茫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"