← 返回首页
Function: length - JavaScript | MDN

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Function: length

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

lengthFunction インスタンスのプロパティで、関数が期待する引数の数を示します。

In this article

試してみましょう

function func1() {} function func2(a, b) {} console.log(func1.length); // 期待される出力結果: 0 console.log(func2.length); // 期待される出力結果: 2

数値です。

Function: length のプロパティ属性
書込可能不可
列挙可能不可
設定可能

解説

Function オブジェクトの length プロパティは、関数が期待する引数の数、つまり形式上の引数の数を示します。

  • 既定値のある最初の引数より前の引数だけがカウントされます。
  • 分割パターンは単一の引数としてカウントされます。
  • 残余引数は除外されます。

これに対し、 arguments.length は関数のローカルスコープ内で用いられ、関数が実際に受け取った引数の数、つまり実引数の数を参照するのに用いるものです。

Function コンストラクター自体は、 Function オブジェクトです。この length データプロパティの値は 1 です。

歴史的な理由により、 Function.prototype は自身を呼び出すことができます。 Function.prototype の length は 0 の値を持ちます。

関数の length の使用

js
console.log(Function.length); // 1 console.log((() => {}).length); // 0 console.log(((a) => {}).length); // 1 console.log(((a, b) => {}).length); // 2 etc. console.log(((...args) => {}).length); // 0, rest parameter は数に含まれない console.log(((a, b = 1, c) => {}).length); // 1, 既定値を持つ引数が最初に登場する前までの // 引数だけが数に含まれる console.log((({ a, b }, [c, d]) => {}).length); // 2, 分割パターンは、それぞれ単一の引数としてカウントされる

仕様書

Specification
ECMAScript® 2027 Language Specification
# sec-function-instances-length

ブラウザーの互換性

Enable JavaScript to view this browser compatibility table.

関連情報