美文网首页
JS--函数

JS--函数

作者: nickName0 | 来源:发表于2017-11-22 22:35 被阅读11次

JS--函数

函数的定义

  • 方式一
abs()函数的定义如下:
function指出这是一个函数定义;
abs是函数的名称;
(x)括号内列出函数的参数,多个参数以,分隔;
{ ... }之间的代码是函数体,可以包含若干语句,甚至可以没有任何语句。

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

方式二

var abs = function (x) {
    if (x >= 0) {
        return x;
    } else {
        return -x;
    }
};
注意最后要加一个分好,表示语句结束;
这种没有函数名的定义方式是匿名函数,这个匿名函数赋值给了变量名abs,因此可以使用abs去调用该函数
  • 注意点:
    一,函数可以传入任意个数个参数,且不会影响函数的调用:例如对于上述定义的函数abs(),调用时可以传多个参数abs(12,'xx',99)。

    二,函数传入的参数比定义的参数少也可以;对于上述定义的函数abs(),有一个定义的参数,但是我们调用时可以不传该参数,直接调用abs(),此时返回Nan;

    三,函数内部对参数类型进行判断,代码如下:

      function abs(x) {
        if (typeof x !== 'number') {//判断参数x是不是'number'类型
            throw 'Not a number';
        }
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    }
    

    四,arguments关键字:
    它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。
    arguments类似 Array但它不是一个Array

    function argumentFunc (x, y, z) {
        for (var i=0;i<arguments.length; i++) {
            console.log(arguments[i]);
        }
    
        // parm 是对应下标,不是对应元素值
        for (var param in arguments) {
            console.log(param + '-----' + arguments[param]);
        }
    }
    
    argumentFunc(10,20,30);
    
    输出:
    10
    20
    30
    0-----10
    1-----20
    2-----30
    

实际上arguments最常用于判断传入参数的个数,也可以控制可选参数的赋值问题,如以下写法:

// foo(a[, b], c)
// 接收2~3个参数,b是可选参数,如果只传2个参数,b默认为null:
function foo(a, b, c) {
    if (arguments.length === 2) {
        // 实际拿到的参数是a和b,c为undefined
        c = b; // 把b赋给c
        b = null; // b变为默认值
    }
    // ...
}

五,rest参数
ES6标准引入了rest参数:可以直接获取除了定义参数之外的其他参数集合,rest参数只能写在最后,前面用...标识,用法如下

//resert参数

function resetParamsFunction(x,y,z,...rest) {

    console.log(rest);
}

resetParamsFunction(1,2,3,4,5,6,7,8, 'zzz','yyy','xx',);//输出:[ 4, 5, 6, 7, 8, 'zzz', 'yyy', 'xx' ],

六,特别注意return
JavaScript引擎有一个在行末自动添加分号的机制,所以下面这个函数是有问题的

function foo() {
   return
       { name: 'foo' };//return 和 返回值分行写,则永远不会返回该值,直接返回undefined
}

相关文章

  • JS--函数

    JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用了关键词 function: 当调用该函数...

  • js--函数

    函数内部声明的所有变量会被提升到函数最开始的地方,并且函数域会覆盖全局域 等同于: 即时函数 不会产生任何全局变量...

  • JS--函数

    JS--函数 函数的定义 方式一 方式二 注意点:一,函数可以传入任意个数个参数,且不会影响函数的调用:例如对于上...

  • JS--函数

    函数声明和函数表达式有什么区别 函数声明: 函数表达式: 以上为两者写法的区别。由名称可以看出 “函数表达式” 的...

  • JS--函数

    函数 基本写法 带参数的函数 带有返回值的函数 备注 JavaScript 对大小写敏感 函数内部声明的变量是局部...

  • 20-01-28JS基础1

    书写形式: 今天天气很好! 外部JS,在企业开发中用的较多...

  • js--函数传值

    摘自JS高级程序-第三版 JS中所有的函数的参数都是按值传递的!!! 虽然访问变量有按值和按引用传递两种,但是函数...

  • js &cookie

    js-- (void)webViewDidFinishLoad:(UIWebView *)webView{JSCo...

  • JS--函数节流+函数防抖

    一、函数节流 某函数在指定时间间隔内执行,如:每1秒执行一次 1、第一次就执行 2、首次不执行,需等待delay时...

  • JS--继承(构造函数继承)

    今天我们进一步介绍JavaScript继承的内容,前面一章介绍了如何利用原型链继承,但是原型链继承中也会出现一些不...

网友评论

      本文标题:JS--函数

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