このように書かれたBackbone-relationalのようなjavaScriptを見ました:
( function( undefined ) {
"use strict";
// some code
})();
私の質問は、未定義のパラメータをいつ使用する必要があるかということです。常にまたは特別な状況で?
このように書かれたBackbone-relationalのようなjavaScriptを見ました:
( function( undefined ) {
"use strict";
// some code
})();
私の質問は、未定義のパラメータをいつ使用する必要があるかということです。常にまたは特別な状況で?
Javascriptでは、undefined
は特別なキーワードではありません。これは通常のグローバル変数です。
外部コードによって変更された場合undefined
、奇妙なバグを引き起こす可能性があります。一部の人々は、の関数宣言で未使用のパラメーターを宣言しているため、関数には既知の値でundefined
呼び出される変数があります。undefined
undefined
var undefined
関数本体で同じことを行いますが、さらに数バイト必要です。
ほとんどの場合、そのパターンを見ると、「未定義」が本当に未定義であることを確認しています。下部で、どのように引数を渡さないかを確認してください。
これは自己実行関数であり、パラメータを渡すことができます。
(function(undefined) { // no parameters are passed in so undefined is undefined. "use strict"; })(/*no parameters passed*/)
コードでundefinedを使用していて、他のjavascriptライブラリがundefinedの意味を変更しないようにする必要がある場合は、このパターンを使用することをお勧めします。ただし、これは一般的に発生するものではなく、単なるセーフティネットです。何らかの理由で、javascriptの「undefined」は他の変数と同じように値を設定できます。