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

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

View in English Always switch to English

Function: length

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

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

目次

試してみましょう

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, 分割パターンは、それぞれ単一の引数としてカウントされる

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-function-instances-length

ブラウザーの互換性

ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。

関連情報