javascript - js函数声明和执行的问题

查看:126
本文介绍了javascript - js函数声明和执行的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

浏览器控制台环境:
一:

    var a = function(num){
        b(num);
    }
    a(1);
    var b = function(num){
        console.log(num)
    }

二:

    function a(num){
        console.log(num)
    }
    a(1);
    function b(num){
        console.log(num)
    }

记得在高程看过,function定义的函数会前置,而var定义的函数只是声明会前置。那么代码二无疑是可以打印出1的;但是代码一也能打印出1,我不明白的是当a调用的时候,b函数还未声明,此时为何可以打印出1呢?

另外:

var c = (function(){
    var init = function(){
     a(1);
    };
    var a= function(num){
        b(num);
    };
    var b =function(num){
        console.log(num);
    };
    return{
        init: init
    };
})();
    c.init();

init在a之前声明,为何能调用a?

解决方案

  1. 第一段代码绝不可能打印出1

  2. 第二段代码你是直接返回了init,那时候它里面还没运行,到最后c.init()的时候才运行了,然后才运行里面的a(1);,这当然是没有问题的。

这篇关于javascript - js函数声明和执行的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆