ECMAScript 5 が登場してからしばらく経ち、最新のブラウザー (IE9、CH 19 以降、FF 4 以降) で十分にサポートされており、「不変の未定義」も同様です。「未定義」が次のように渡されるのを見続けていますが:
(function ( ..., undefined ) {
})(...);
私が言えることから、Crockford の JSLint ツールはあまり好きではありません。
Expected an identifier and instead saw 'undefined' (a reserved word).
渡されていなくても(関数呼び出しに引数はありません)、実際には識別子です。彼のツールは死ぬまで従うべきバイブルではないことは理解していますが、一方でJSHintはそれを気にしていないようです。
これは現在でもベスト プラクティスと見なされていますか? また、コードのパフォーマンスやセキュリティにどのような影響がありますか? ブラウザーのサポート >= IE9 を検討しています。