JavaScript查漏补缺--2--函数

函数

在JavaScript中可以直接定义一个函数,也可以用一个变量来接收这个函数
区别,在解释器解释的时候,对于直接定义的函数,会把函数提到前面去,而用变量命名一个函数的时候,只会把变量提升到前面
例如

//会报错,因为这里在解释的时候只会把myFun提到前面去,这时候还没有赋值
myFun();
var myFun = function(){
    alert();
};  //注意这里要加分号
//不会报错
myFun();
function myFun(){
    alert();
}

自调用函数(function(){}); 第二个括号可以传递一个参数,页面初始化就调用

//如
(function(){
    alert();
})(jQuery);

函数解析顺序
1.从上往下提升变量名和函数
2.1完成之后再一条一条执行语句
例如

var a = 1;
test();
function test(){
    alert(a);
    var a = 2;   //如果没有这句,则直接输出2
}
//数据结果为 undefined
//上面再解析完成之后实际上变成了

var a;
function test(){
    var a;
    alert(a);
    a = 2;
}
a = 1;
test();

从上面的例子可以发现,JavaScript解释器解释的时候,是先将变量名和函数提升到上面,然后再开设其他的赋值等,所以最后输出为undefined,如果a,就去上一级找a,找到a的时候一开始也是没有值的,但是在test调用之前被赋值了,所以就变成了1


函数能作为另一个函数的参数,例如例如

        console.log(fn(3,function(num){
            return num * num;
        }));

        function fn(a,f){
            return a + f(a);
        }
//输出结果为12

/****************同样的,你还可以这样************************/
        function f1(num1,num2){
            return num1 + num2;
        }

        var f2 = function(num1,num2){
            return num1 + num2;
        }

        var result = function(a,b,f){
            return 100 + f(a,b);
        };

        console.log(result(21,21,f1));
        console.log(result(21,21,f2));

        //输出结果为
        //142
        //142
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值