zoukankan      html  css  js  c++  java
  • 3.3 js函数

    1.函数语法:

    函数声明的方式:
    function 函数名(参数1,参数2…){
    //函数体;
    }
    函数调用:函数名(参数1,参数2…);

    函数内不一定都指定返回值。

    如果需要指定返回值,可用 return 跟上要返回的值来指定返回值。

    位于return语句后面的代码在 return 语句所在的作用域下都不执行(如果 return 语句在一个函数体内,那么这个 return 语句所在的作用域便是这个函数体内)。

    如果return语句后面没有跟返回值,那么返回值为undefined。适用于不需要返回值的场景中。


    2.函数的参数

    js中函数的参数跟别的语言函数的参数不同。

    假如你定义了一个函数,有三个参数,在的调用这个函数的时候,你可以不传入参数,你也可以传入2个3个4个参数,

    原因在于js中的函数的参数在内部是以一个数组(这个数组可能包含0个或者多个值)的形式表示的。

    你可以通过arguments这个对象来访问函数的参数。arguments是一个数组对象。

    如下面例子:

    // js中函数的参数  arguments
    function person(name,age,height){
        console.log("姓名" + arguments[0] + "年龄" + arguments[1] + "身高" + arguments[2]);
        console.log(arguments.length);
    }
    person("lijinwen",10,"180cm");
    打印出如下值:
    //  姓名lijinwen年龄10身高180cm
    //  3

    根据js函数的参数的这个特性,我们其实可以模仿函数的重载功能。即根据函数参数的个数不同,而得到不同的结果。但是这个并不是函数的重载。

    // 模仿函数重载功能
    function fun(){
        if(arguments.length == 2){
            console.log("两个参数");
        }else if(arguments.length == 3){
            console.log("三个参数");
        }
    }
    fun(1,2);//两个参数
    fun(1,2,3);//三个参数

    3.函数没有重载。如果两个同名的函数,那么后面的函数将覆盖前面的函数。

    // 函数没有重载
    function sum(a,b){
        console.log("两个参数");
    }
    function sum(a,b,c){
        console.log("三个参数");
    }
    sum(1,2);//三个参数
    sum(1,2,3);//三个参数

    我们原本想如果往函数中传入2个参数,则调用第一个函数打印出”两个参数”,如果3个参数,调用第二个函数打印出”三个参数”。
    看上面的代码sum(1,2)有2个参数,结果打印出“三个参数”,那么可以断定它调用的是第二个函数。
    由此证明,多个同名函数的情况下,最后一个函数将会覆盖上面的同名函数。这种又称作重载,因此 js 中函数没有重载。

  • 相关阅读:
    mysql 查询表结构
    微信网页分享 jssdk config:invalid signature 签名错误
    小程序ios开发注意点
    自己常用易忘的CSS样式
    好久好久没写,,百度API逆地址解析以及删除指定marker
    关于vue打包是因代码校验报错
    git命令行 整理(一位大神给我的私藏)
    百度地图IP定位,点击地图添加marker
    vue-百度地图-maker文字标签显示隐藏
    vue脚手架搭建项目引用百度地图--出坑
  • 原文地址:https://www.cnblogs.com/goldWen90/p/6223977.html
Copyright © 2011-2022 走看看