js代码函数的几种写法!(若有遗漏,请告知,谢谢)

今天看到一些js函数代码写法,就感到很好奇,查找了写资料,如下!

jQuery插件中的的js写法是这样的:

            (function($) {         
                //...  
            })(jQuery);

layui组件是这样写的

            ;!function($){
                //...
            }();

还有的是这样的

            !function(){
                //...
            }();

解释:

一般我们函数声明的方式有这两种:

            function fnA(){
                alert(1);
            }     //声明式函数
            或者
            var fnb = function(){
                alert(1);
            }     //函数赋值表达式定义函数

注意:前面三种写法都是匿名函数,我们通常调用一个方法是以functionName()的方式调用,但是如果我们尝试为一个定义函数末尾加上(),解析器是无法理解的;

            function fnc(){
                alert(1);
            }();    //解析器无法理解function(){
                alert(1);
            }()     //解析器无法理解

定义函数的调用方式应该是 fnc(); 那为什么将函数体部分用()包裹起来就可以了呢????
使用括号包裹定义函数体,解析器将会以函数表达式的方式去调用定义函数。也就是说,任何能将函数变成一个函数表达式的做法,都可以使解析器正确的调用定义函数。!,+,-,(),~都有这样的功能。

通俗来讲:

(function(){})向脚本返回未命名的函数,随后一对空括号,表示立即执行这个返回的未知命名函数!空括号呢称为匿名函数的参数eg:

            (function(msg){
                alert(msg);
            })("HelloWorld");
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值