角括弧は、その中のものがオプションであることを意味します - あなたが持っているか持っていないかのどちらかです。これは、有効な呼び出しフォームをリストする簡潔な方法です。
基本的な例
target.addEventListener(type, listener[, useCapture]);
次の 2 つの有効な形式があります。
target.addEventListener(type, listener ); // without
target.addEventListener(type, listener, useCapture); // with
コンマが角括弧の外側にある場合、2 つの形式は次のようになります。
target.addEventListener(type, listener, ); // without (syntax error)
target.addEventListener(type, listener, useCapture); // with
jQuery の例
.on( イベント [, セレクター] [, データ], ハンドラー );
これは少しトリッキーです。セレクターとデータはオプションなので、次の 4 つの有効な形式があります。
.on( events , handler ); // without both
.on( events , data, handler ); // without selector, with data
.on( events, selector , handler ); // with selector, without data
.on( events, selector, data, handler ); // with both
問題は、2 番目と 3 番目の形式の両方に 3 つのパラメーターがあるため、引数がどのように解釈されるかが明確でないことです。jQuery は中間の引数の型に基づいて決定するようです。文字列の場合は 3 番目の形式が選択されます。それ以外の場合は、2 番目の形式が選択されます。
したがって、以下は"hi"
セレクターとしてあり、データ引数として何もありません。
.on( events , "hi", handler ); // "hi" is the selector (!)
"hi"
jQueryが data 引数として使用することを強制するnull
には、セレクターに指定する必要があります。
.on( events, null , "hi", handler ); // "hi" is the data argument
これは明らかに 4 番目の形式であり、ドキュメントによると、null
セレクターは省略されたセレクターと同じように扱われます。
ネストされた例
ドキュメントでは、ネストされた角括弧がよく見られます。Unix コマンドのドキュメントからの簡単な例を次に示しますman
。
man [--warnings[=type]] ページ
これは、次の形式が有効であることを意味します。
man javac # without outer
man --warnings javac # with outer (without inner)
man --warnings=number javac # with outer (with inner)
ただし、以下は有効ではありません。
man =number javac # is this with or without outer?