2 qq 25692699 qq_25692699 于 2016.09.27 08:45 提问

两个js面试题,求大神解答 10C
var name = "world";
    (function(){
        if(typeof name ==="undefined"){
            var name="jack";
            console.log("Goodbye"+name);
        }else{
            console.log("hello"+name)
        }
    })()
function fun(n,o){
            console.log(o);
            return {
                fun:function(m){
                    return fun(m,n);
                }
            }
        }
        var a=fun(0);
        a.fun(1);
        a.fun(2);
        a.fun(3); 

这是两个js面试题?谁能帮我解答一下,并告诉原理

4个回答

qq_35718410
qq_35718410   2016.09.27 09:02

第二题,在执行var a=fun(0)时,输出undefined,因为只传了一个参数,n=0,o=undefined,并返回fun对象
执行a.fun(1)时,又递归调用外层的fun函数,即fun(1,0),m为1,n为0,故输出0;剩下的同理

showbo
showbo   Ds   Rxr 2016.09.27 09:27

第一题看这个:javascript运行机制

第二个设计闭包,具体看#2的

qq_35718410
qq_35718410   2016.09.27 08:52

第一道题会输出Goodbyejack,在匿名自调函数中定义了name变量,因为声明提前,所以执行typeof时name为undefined

zhanghaili123456789
zhanghaili123456789   2016.09.28 10:35

javascript的基础教程里都有实例,多看看基础吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!