小米技术社区
小米技术社区管理员 关于小米

27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]

E-mail:mzze@163.com

Q Q:32362389

W X:xiaomi168527

小米技术社区大牛王飞 关于王飞

27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]

E-mail:wf_live@126.com

Q Q:3940019

微博:王小贱ss

小米技术社区设计小艳 关于小艳

大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]

E-mail:97157726@qq.com

Q Q:97157726

标签云
精品推荐
  • 什么是闭包?js闭包的2个最大用途以及注意事项

    什么是闭包?js闭包的2个最大用途以及注意事项

    各种专业文献上的"闭包"(closure)定义非常抽象,很难看懂。简单的说,闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因……
    134人已经看过了
您的位置:首页 > 前端开发 > Javascript > 原生JS

JavaScript的函数概念_声明_参数_形参_实参_返回值等

分类: 原生JS15个赞

JavaScript的函数定义:  一堆完成某个特定功能的代码



1.声明函数(定义函数)的3种方式

(1)function 关键字声明

function 函数名(){
   一堆代码--函数体
}

(2)表达式方式声明函数

let 变量名 = function (){
   一堆代码--函数体
}

(3)匿名函数声明及匿名函数自调用

(function 函数名{
   一堆代码--函数体
})();


函数调用

函数名();


注意:声明函数时,函数{}中的函数体代码,不会执行的。调用函数时,才执行函数{}中的代码。



1.声明函数的方式1----function 关键字声明

案例:封装了一个做饭的函数

function cook(){
 console.log('洗菜');
 console.log('切菜');
 console.log('炒菜');
 console.log('淘米');
 console.log('煮米饭');
}


早上调用

cook();

中午调用

cook();

晚上调用

cook();


2.声明函数方式2----表达式方式声明函数

特点:函数不取名字,将函数作为一个值(表达式),赋值给一个变量,变量就是函数的名字

    var fn = function(){
     console.log('洗菜');
     console.log('切菜');
     console.log('炒菜');
     console.log('淘米');
     console.log('煮米饭');
    };
fn(); //调用函数



3.匿名函数及匿名函数自调用

匿名函数概念:没有名字的函数,叫做匿名函数

匿名函数特点:

(1)将匿名函数 使用小括号 括起来,表示是一个整体

(2)后面加一堆小括号,表示函数的调用

(3)匿名函数自调用(立即调用) 且 只能调用一次


 (function(){
  console.log('洗菜');
  console.log('切菜');
  console.log('炒菜');
  console.log('淘米');
  console.log('煮米饭');
 })();


匿名函数的作用于好处 : 防止全局变量被污染(污染--值被改变)

匿名函数案例:

    var num = 10;
    //套一层函数自调用  隔离开这部分代码  函数中的var声明的变量,和函数外面的,互不影响
    (function(){
        var num = 100;
        console.log(num);  //结果为100
    })();
    console.log(num); //结果还为10

注意:匿名函数内部一定要用var或let声明,如果不用,则还是使用的外部全局全量

image.png

函数的参数


参数案例:

    //定义一个函数,计算 1 - 100 之间的数的和
function fn(){
        var total = 0;
        for(var i=1; i<=100; i++){
            total += i;
        }
        console.log(total);
    }
    fn();     //调用函数


单参数:定义一个函数,计算 1 - n 之间的数的和

//定义函数时,声明一个参数n  调用函数时,传一个值,给参数n赋值了

    function fn(n){

        var total = 0;
        for(var i=1; i<=n; i++){
            total += i;
        }
        console.log(total);

    }
    //调用函数并且传参数
    fn(100); //  1-100
    fn(200); //  1-200


形参(形式参数)的概念: 定义函数时,放在函数名称小括号中的,个数随意

实参(实际参数)的概念: 调用函数时,放在函数名称小括号中的值,个数随意

注意:多个参数 用逗号隔开  实参和形参 按照顺序 一一对应


双参数:定义一个函数,计算 m - n 之间的数的和

    //定义函数时,声明参数m n  调用函数时,传一个值,给参数n赋值了
    function fn(m,n){  // m,n为形式参数
        // console.log(m, n);
        var total = 0;
        for(var i=m; i<=n; i++){
            total += i;
        }
        console.log(total);

    }
    //调用函数并且传参数
    var a = 100, b=200;
    fn(a,b); //a,b为


注意:

    1.形参和实参个数,可以不相同

    2.实参少传了,函数本身语法没错,但是函数里面的代码可能报错

    3.fn(200, 300, 400);  //多传了只取前两个

    4.fn(); //没传传进函数内的值是undefined


函数return返回值

函数return返回值的定义: 在函数内部,代码执行结束,给向函数外部提供一个结果

函数return返回值使用环境:如果调用函数后,需要使用的函数的结果,则需要return 返回值。

return返回值特点:

(1)return返回值 之后的代码都不执行

(2)如果没有写return ,或者 return 后面没有加具体的值,则返回值为undefined


 return返回值案例:

    //定义一个函数,计算 m - n 之间的数的和
    //定义函数时,声明参数m n  调用函数时,传一个值,给参数n赋值了
 function fn(m,n){
        // console.log(m, n);
        var total = 0;
        for(var i=m; i<=n; i++){
            total += i;
        }
        // 返回一个值 作为函数执行的结果
        return total;
    }
    //调用函数并且传参数  //需要将累加后的和 ,返回到函数外面
    var res = fn(100, 200);
    console.log(res); //结果为100-200累积的和15150



函数的其他问题:

 函数本身也是一个特殊的值,数据类型是属于对象object类型的

    

 // console.log(typeof null); //返回object


// console.log(typeof f1); // 返回function,实际我们归类为object 


    


函数可以作为另一个函数的返回值

案例:把函数f2作为 返回值

 var f2 = function(){
    console.log(200);
    return 300;
     }
    function f3(){
     var a = 100;
     // return f2;
    return f2(); 
    var b = f2();
    return b;
    }
        //如果f3中,f2后面没有小括号,所有f2函数没有被调用,而是直接将函数作为一个值返回了
    //如果f3中,f2后面有小括号,则会调用f2的返回值300
    var res = f3();
    console.log(res);
    //f2();结果为300,如果是f2则直接是函数表达式function(){console.log(200); return 300;};



函数可以作为另外一个函数的参数 

 //这里用表达式方式声明函数

    var f1 = function(){
        return 100;
    };

    //f2 希望有一个函数类型的参数 传进来
    function f2(f){  //f = f1
        var res = f();  //将传进来的函数 调用一次
        console.log(res);
    }

    f2(f1);


小米技术社区

本站内容均为小米原创,转载请注明出处:小米技术社区>> JavaScript的函数概念_声明_参数_形参_实参_返回值等