JS函数笔记

函数声明

function functionName(parameters) {
   要执行的代码
}

函数表达式(匿名函数)

var functionName  = function(parameters) {
   要执行的代码
}

//执行
functionName(parameters)

Function() 构造器

如您在之前的例子中看到的,JavaScript 函数是通过 function 关键词定义的。
函数也可以通过名为 Function() 的内建 JavaScript 函数构造器来定义。

var myFunction = new Function("a", "b", "return a * b");

var x = myFunction(4, 3);

函数提升

Hoisting 是 JavaScript 将声明移动到当前作用域顶端的默认行为。
Hoisting 应用于变量声明和函数声明。
正因如此,JavaScript 函数能够在声明之前被调用:

myFunction(5);

 function myFunction(y) {
     return y * y;
}

使用表达式定义的函数不会被提升。

自调用函数

函数表达式(匿名函数)可以作为“自调用”。函数定义的其中一种
自调用表达式是自动被调用(开始)的,在不进行调用的情况下。
函数表达式会自动执行,假如表达式后面跟着 ()。
您无法对函数声明进行自调用。
您需要在函数周围添加括号,以指示它是一个函数表达式:
实例

(function () {
    var x = "Hello!!";      //我会调用我自己
})();

//
(function () {
    var x = "Hello!!";      //我会调用我自己
})相当于返回一个函数指针

箭头函数

不需要 function 关键字、return 关键字和花括号
箭头函数没有自己的 this。它们不适合定义对象方法。
箭头函数未被提升。它们必须在使用前进行定义。
使用 const 比使用 var 更安全,因为函数表达式始终是常量值。

/ ES5
var x = function(x, y) {
  return x * y;
}

// ES6
const x = (x, y) => x * y;
等价于
`如果函数是单个语句,则只能省略 return 关键字和大括号。因此,保留它们可能是一个好习惯:`
const x = (x, y) => {
      return x * y;
}

你可能感兴趣的:(JS函数笔记)