美文网首页JavaScript
函数的定义和调用

函数的定义和调用

作者: 纯洁的大白纸 | 来源:发表于2017-12-14 19:52 被阅读0次

函数的定义

第一种:

function abs(x){
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
}

由于JavaScript的函数也是一个对象,上述定义的abs()函数实际上是一个函数对象,而函数名abs可以视为指向该函数的变量。所以有了第二种定义方式。

第二种:

var abs=function(x){
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
}; //按照完整语法需要在函数体末尾加一个;,表示赋值语句结束。

这种方式下,该函数是一个匿名函数,但是赋值给了变量abs,因此可以通过变量abs来调用该函数。

函数的调用

调用时,按顺序传入参数即可。
由于JavaScript允许传入任意个参数而不影响调用,因此传入的参数比定义的参数多也没有问题,虽然函数内部并不需要这些参数:
传入的参数少哪?

abs()//此时abs(x)函数的参数x将收到undefined,计算结果为NaN。

要避免收到undefined,可以对参数进行检查:

function abs(x) {
    if (typeof x !== 'number') {
        throw 'Not a number';
    }
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
}

arguments

关键字arguments的作用域是 函数内部,永远指向传入函数的参数。arguments类似于Array但不是Array
使用方法:

function abs(){
    if(arguments.length == 0){
        return 0;
    }
    var temp = arguments[0];
    return temp >= 0 ? temp:-temp;
}
abs();//返回0;
abs(9);//返回9;
abs(-9);//返回9;

应用场景:常用于判断传入参数的个数。

//foo(a, [b], c)
//接受2-3个参数,其中第二个参数 b 是可选参数;
function foo(a, b, c){
    if(arguments.length === 2){
    //实际拿到的参数是a和b,c是undefined;
        c = b;//将b的值赋给c;
        b = null;//把b变成默认值;
    }
    ...//函数的具体实现;
}
//要想把中间的可选参数b变成默认值,只能通过`arguments`进行转换;

rest

rest参数有ES6标准引入。作用是获取除了已定义的参数之外的所有参数。

使用方法:

function foo(a, b, ...rest){
    console.log('a = ' + a);
    console.log('b = ' + b);
    console.log(rest);
}
foo(1, 2, 3, 4, 5);
//a = 1, b = 2, c = Array[3, 4, 5];
foo(1);
//a = 1, b = undefined, Array[];

rest要写在所有参数的最后,前面加上三个点...,前两个参数绑定到a,b上,其余所有的参数以数组的形式,传给变量rest

相关文章

  • 004-函数

    函数介绍 函数概念 函数的定义和调用函数的定义(函数可以重复调用,不能重复定义)语法格式:def 函数名(): ...

  • 菜鸟Python笔记-基础篇05:函数(一)

    一、函数定义和调用 <1>定义函数 定义函数的格式如下: demo: <2>调用函数 定义了函数之后,就相当于有了...

  • Python学习基础知识之 函数的介绍以及常见操作

    目录 一、函数定义和调用 1.1定义函数 1.2调用函数 1.3注意 二、函数参数 2.1定义带有参数的函数 2....

  • JavaScript教程-函数

    函数 函数定义和调用 定义函数function abs(x) { if (x >= 0) { ...

  • [转载]JavaScript权威指南(8)--函数

    文章前言 一 函数定义 二 函数调用 1,函数调用 2,方法调用 3,构造函数调用 4,间接调用 三 函数的实参和...

  • day13函数

    一、函数的定义和调用 定义: def 函数名([参数]): 代码块 [return 表达式] 调用 函数名([参数...

  • 函数基础与lambda函数

    主要包括: 函数的定义 函数的多文件调用 必须参数和关键字参数 匿名函数 函数的定义 调用: 函数名(实参) 查看...

  • 廖雪峰的JS教程2.1-函数

    函数 函数的定义和调用 定义函数 上述abs()函数的定义如下: function指出这是一个函数定义; abs是...

  • swift——函数

    函数的定义和调用 1.函数的定义 示例代码: 2.函数的调用 示例代码 函数的参数和返回值 1.无参函数 尽管这个...

  • 自定义构造函数创建对象

    注意点:函数和自定义构造函数的区别? 普通函数在调用的时候直接 functionName(); 调用就行,自定义构...

网友评论

    本文标题:函数的定义和调用

    本文链接:https://www.haomeiwen.com/subject/qmllwxtx.html