Definisi Fungsi JavaScript
Fungsi JavaScript adalah melalui function
kata kunciTakrifan.
Anda dapat menggunakan fungsi声明atau fungsiEkspresi。
Pengumuman Fungsi
Di awal tutorial ini, anda belajar tentang sintaks berikut:声明Fungsi:
function namaFungsi(parameter) { Kode yang akan dieksekusi }
Fungsi yang diumumkan tidak dieksekusi langsung. Mereka 'disimpan untuk digunakan nanti' dan akan dieksekusi nanti, ketika mereka dipanggil.
实例
function myFunction(a, b) { return a * b; }
Tanda titik koma digunakan untuk memisahkan kalimat-kalimat JavaScript yang dapat dieksekusi.
Karena fungsi声明Bukan kalimat yang dapat dieksekusi, dan penggunaan tanda titik koma untuk menutupnya adalah jarang terjadi.
Ekspresi Fungsi
Fungsi JavaScript juga dapat digunakanEkspresiuntuk menakrifkan.
Ekspresi fungsi dapat disimpan di variabel:
实例
var x = function (a, b) {return a * b};
Setelah menyimpan ekspresi fungsi di variabel, variabel ini dapat digunakan sebagai fungsi:
实例
var x = function (a, b) {return a * b}; var z = x(4, 3);
上面的函数实际上是一个Fungsi Anonim(没有名称的函数)。
Fungsi yang disimpan di variabel tidak memerlukan nama fungsi. Mereka selalu digunakan melalui nama variabel.
Fungsi di atas menggunakan tanda titik koma untuk penutup, kerana ia adalah bagian dari kalimat yang dapat dieksekusi.
konstruktor Function()
Seperti yang anda lihat di contoh sebelumnya, fungsi JavaScript adalah melalui function
yang ditakrifkan oleh kata kunci.
Fungsi juga boleh dijalankan melalui nama Function()
的内建 JavaScript 函数构造器来定义。
实例
var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3);
您实际上无需使用函数构造器。上面的例子这么写也是一样的:
实例
var myFunction = function (a, b) {return a * b}; var x = myFunction(4, 3);
大多数情况下,您可以避免在 JavaScript 中使用 new
关键词。
函数提升
在本教程中稍早前,您已经学到了“提升”(hoisting)。
Hoisting 是 JavaScript 将声明移动到当前作用域顶端的默认行为。
Hoisting 应用于变量声明和函数声明。
正因如此,JavaScript 函数能够在声明之前被调用:
myFunction(5); function myFunction(y) { return y * y; }
使用表达式定义的函数不会被提升。
自调用函数
函数表达式可以作为“自调用”。
自调用表达式是自动被调用(开始)的,在不进行调用的情况下。
函数表达式会自动执行,假如表达式后面跟着 ()
。
您无法对函数声明进行自调用。
您需要在函数周围添加括号,以指示它是一个函数表达式:
实例
(function () { var x = "Hello!!"; // 我会调用我自己 }();
上面的函数实际上是一个匿名的自调用函数(没有名称的函数)。
函数可用作值
JavaScript 函数可被用作值:
实例
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3);
JavaScript 函数可用在表达式中:
实例
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2;
函数是对象
JavaScript 中的 typeof
运算符会为函数返回 "function
"。
但是最好是把 JavaScript 函数描述为对象。
JavaScript 函数都有属性和方法。
arguments.length
会返回函数被调用时收到的参数数目:
实例
function myFunction(a, b) { return arguments.length; }
toString()
方法以字符串返回函数:
实例
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();
定义 为 对象 属性 的 函数,被称为 方法 对象。
设计 创建 新对象 而 的 函数,被称为 构造函数 对象(对象 构造器)。
箭头函数
箭头函数 允许 使用 简短的 语法 来 编写 函数 表达式。
不需要 关键字 function、关键字 return 和 花括号。
实例
// ES5 var x = function(x, y) { return x * y; } // ES6 const x = (x, y) => x * y;
函数 箭头 没有 自己 的 this。它们 不 适合 定义 方法 对象。
提升 未 被 函数 箭头。它们 必须 在 使用 前 进行 定义。
使用 const 比 使用 var 更 安全,因为 函数 表达式 始终是 常量 值。
如果 函数 单个 语句,则 只能 省略 关键字 return 和 大括号。因此,保留 它们 可能 是一个好习惯:
实例
const x = (x, y) => { return x * y };
版本 早于 IE11 不支持 函数 箭头