创建函数

  1. function fun1(parameter1, parameter2) {}
  2. let fun2 = function (parameter1, parameter2) {}

调用函数

  1. function fun1(parameter1, parameter2) {}
  2. let fun2 = function (parameter1, parameter2) {}
  3. fun1(actual arguments1, actual arguments2);
  4. fun2(actual arguments1, actual arguments2);

函数参数

  1. function fun(num1, num2) {
  2. console.log(num1 + num2);
  3. }
  4. fun(1, 2); // 3
  5. fun(1); // NaN:num2 = undefined
  6. fun(1, 2, 3); // 3

函数返回值

  1. function sum(num1, num2) {
  2. return num1 + num2;
  3. }
  4. console.log(sum(1, 2)); // 3
  • return会终止函数
  • return后面的代码不会执行
  • return只能返回一个值,多个值以最后一个为准
  • 函数默认返回undefined

arguments

arguments对象存储了传递的所有实参(伪数组)

  1. function fun() {
  2. console.log(arguments);
  3. }
  4. fun(1, 2, 3);
  5. // [Arguments] { '0': 1, '1': 2, '2': 3 }

立即执行函数

  1. ;(function () { // 匿名函数
  2. console.log('立即执行函数') // 立即执行函数
  3. })()
  4. ;(function (name) {
  5. console.log(name) // yingximu
  6. })('yingximu')

回调函数

  1. /*
  2. * 将函数作为参数调用的函数称为回调函数
  3. *
  4. * 调用fun函数,传递一个匿名函数作为参数
  5. * fun接收这个匿名函数并且调用
  6. * callbackFn = function () {
  7. * console.log('callbackFn')
  8. * }
  9. */
  10. function fun(callbackFn) {
  11. callbackFn()
  12. }
  13. fun(function () {
  14. console.log('回调函数')
  15. })

箭头函数(ES6)

  1. /*
  2. * const fun1 = function () {
  3. * console.log('fun1')
  4. * }
  5. */
  6. const fun1 = () => {
  7. console.log('fun1');
  8. }
  9. /*
  10. * const fun2 = function (num) {
  11. * console.log(num)
  12. * return num
  13. * }
  14. *
  15. * const fun2 = (num) => {
  16. * console.log(num)
  17. * return num
  18. * }
  19. */
  20. const fun2 = num => {
  21. console.log(num)
  22. return num
  23. }
  24. /*
  25. * const fun3 = (num) => {
  26. * return num + 1
  27. * }
  28. */
  29. const fun3 = num => num + 1
  30. /*
  31. * const add = function (num1, num2) {
  32. * return num1 + num2
  33. * }
  34. */
  35. const add = (num1, num2) => num1 + num2

参数默认值

  1. function sum(num1 = 0, num2 = 0) {
  2. return num1 + num2
  3. }
  4. console.log(sum()) // 0
  5. console.log(sum(1)) // 1
  6. console.log(sum(1, 2)) // 3
  7. function connect({ host = '127.0.0.1', username, password, port }) {
  8. console.log(host, username, password, port)
  9. }
  10. connect({ username: 'root', password: 'root', port: '3306' }) // 127.0.0.1 root root 3306
  11. connect({ host: 'localhost', username: 'root', password: 'root', port: '3306' }) // localhost root root 3306

rest

该方式的参数放在最后,以数组方式存储传递过来的实参

  1. function sum(...args) {
  2. console.log(args)
  3. }
  4. sum(1, 2, 3, 4, 5, 6) // [ 1, 2, 3, 4, 5, 6 ]