函数的定义的四个注意部分,定义的两种方式及其分号结尾的情况,函数参数的2个关键字(arguments,rest),return正确写法
发布日期:2021-06-29 11:42:47 浏览次数:3 分类:技术文章

本文共 1630 字,大约阅读时间需要 5 分钟。

上述abs()函数的定义如下:

  • function指出这是一个函数定义;
  • abs是函数的名称
  • (x)括号内列出函数的参数,多个参数,分隔
  • { ... }之间的代码是函数体,可以包含若干语句,甚至可以没有任何语句结尾没有分号。
function abs(x) {    if (x >= 0) {        return x;    } else {        return -x;    }}

如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined。由于JavaScript的函数也是一个对象,上述定义的abs()函数实际上是一个函数对象,而函数名abs可以视为指向该函数的变量。第二种定义函数的方式如下:注意第二种方式按照完整语法需要在函数体末尾加一个分号;表示赋值语句结束。

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

由于JavaScript允许传入任意个参数而不影响调用,当传入的参数比定义的参数多时,函数内部并不需要多余的这些参数;当传入的参数少时,未定义的参数的值为undefined,那么计算结果为NaN:

abs(); // 返回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 foo(x) {    console.log('x = ' + x); // 10    for (var i=0; i

利用rest参数可以获取多余的参数。它只能写在最后,前面...标识,从运行结果可知,传入的参数先绑定ab,多余的参数以数组形式交给变量rest,所以,不再需要arguments我们就获取了全部参数。如果传入的参数连正常定义的参数都没填满,也不要紧,rest参数会接收一个空数组(注意不是undefined)。

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// Array [ 3, 4, 5 ]foo(1);// 结果:// a = 1// b = undefined// Array []

return正确的写法,是下面两种:

function foo() {    return { name: 'foo' };  // 第一种和返回参数在同一行}foo(); // { name: 'foo' }function foo() {    return {     // 第二种,一定要加{,那么这里不会自动加分号,因为{表示语句尚未结束        name: 'foo'    };}function foo() {    return    //   错误的方式,这里识别为一个语句,那么会自动添加分号,相当于return undefined;        { name: 'foo' }; // 这行语句已经没法执行到了}

 

 

 

 

 

 

 

 

 

 

 

转载地址:https://blog.csdn.net/zz2230633069/article/details/108192737 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JS的语句标识,注释,区分大小写
下一篇:面向对象的继承和多态,剖析对象的信息(获取相关信息),类属性和实例属性

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月04日 17时25分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章