美文网首页
JavaScript 基础:函数

JavaScript 基础:函数

作者: 7emini | 来源:发表于2020-08-21 08:50 被阅读0次

最近在阅读《JavaScript 高级程序设计(第三版)》,通过阅读它来学习 JS 知识,本文大部知识内容分来自此书,推荐阅读。

是什么

函数是封装JS语句的一段(一坨)代码,

为什么

使用函数 省的 每次解决问题需要重新写代码

怎么办

(1)如何创建函数

使用 function 关键字来声明,后跟一组参数以及函数体,示例如下:

function functionName(arg0, arg1, .... argN) {
    // do something
}

(2)返回值

  • JS中的函数不强求函数一定要返回值。
  • 执行完 return 语句后函数立刻停止并退出。
  • 也可以直接写 return 或不返回值,则该函数的返回值为 undefined
function sum(num1, num2) {
    return num1 + num2; // 返回两数之和
    alert('hello'); // 这段代码永远不会执行
}

var value = sum(1,2); // value 为 3
function sayHello(name) {
    alert('Hello'+name);
    return; // 直接返回(return 语句可有可无)
}

var a = sayHello('World') // a 为 undefined

关于返回值,推荐的做法是:要么让函数始终都返回一个值,要么永远都不要返回值。否则,如果函数有时候返回值,有时候不返回值,会给调试代码带来不便。

(3)参数

function num(num1) {
    console.log('length: '+arguments.length); // 输出函数参数的个数
    var num2 = arguments[1];                  // 获取第二个参数
    if (num2) {                               //判断是否由第二个参数
        console.log(num1+num2);
    } else {
        console.log(num1+10);
    }
}

var v1 = num(100, 200);
var v2 = num(100);

结果:

length: 2
300
--------------
length: 1
110
  • JS中的函数不介意传递进来多少参数,也不在乎传递进来的参数是什么数据类型(这么叼!!!)。这也就意味着:即使你定义的函数只接收两个参数,在调用这个函数的时候也未必一定要传递两个参数,可以传递一个或者两个、三个或者不传参数!原因是JS函数中的参数是由一个数组表示的,在函数体内,可以通过 arguments 对象来访问这个数组。
  • arguments 对象不是数组对象的实例,它只是与数组对象类似。使用 arguments[N] 来访问数组中指定的参数,如 arguments[0] 代表的是数组的第一个元素。
  • 在函数内部使用 arguments.length 获取传递进来的参数数量。
  • 命名参数只提供便利,但不是必须的。函数内部有了 arguments 对象后,函数就可以不使用命名的参数(即在括号里写的参数名)就可以在函数内部使用给函数传递的参数(很方便!!!)。通过这个特性可以在函数内部通过检查传入的参数的类型和数量并作出不同的反应,来模拟函数重载(JS没有函数重载功能,仅仅是模拟)。
  • arguments 对象可以和 命名参数一起使用。arguments 对象中“元素”的值与对应命名参数的值保持同步。
function add(num1, num2) {
    // 通过 arguments 对象为参数赋值。
    // 这一句代码使得 参数 num2 值 永远为10。
    arguments[1] = 10;      
    var sum = num1 + num2;
    console.log(sum);
}

add(10, 20); // 结果为 20
  • JS中所有参数传递都是值,不可能通过引用传递参数。
  • arguments 对象的长度是由传入参数的个数决定的,而不是由定义函数时的命名参数的个数决定的(是由实参个数决定的,不是形参个数决定的)。

相关文章

  • JS相关思维导图

    javascript DOM操作 javascript windows对象 javascript函数基础 java...

  • JavaScript | 函数与方法

    Reference : JavaScript教程 - 廖雪峰的官方网站 JavaScript函数基础 定义函数 在...

  • part1整理

    函数式编程:JavaScript函数式编程指南 异步编程:异步编程 Promise源码 JavaScript基础知...

  • javaScript系列 [06]-javaScript和thi

    在javaScript系列 [01]-javaScript函数基础这篇文章中我已经简单介绍了JavaScript语...

  • js基础

    JavaScript基础 JavaScript基础语法 变量的声明 运算符 分支结构 循环结构 函数 数据结构 w...

  • JavaScript基础函数

    一:数组 1.indexOf() 搜索一个元素指定位置: Eg Var arr=[10,20,30]; arr....

  • javascript函数基础

    什么是函数 函数是可重复执行的代码块,为了完成特定的功能。 为什么使用函数 因为一部分代码使用次数或许很多,封装起...

  • JavaScript 基础:函数

    最近在阅读《JavaScript 高级程序设计(第三版)》,通过阅读它来学习 JS 知识,本文大部知识内容分来自此...

  • javascript基础-函数

    函数定义表达式: 函数声明语句:

  • javascript基础函数

    获取url参数 JavaScript加载样式文件 匹配多个转行的空格 递归函数 列队递归函数 获取对象的样式 给元...

网友评论

      本文标题:JavaScript 基础:函数

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