場合によります。初期化を伴う宣言について話している場合は、次のようになります。
このことを考慮:
(function () {
var x = 1;
console.log(y); // undefined
var y = 2;
})();
(function () {
var x = 1, y = 2;
console.log(y); // 2
})();
ただし、以下は安全であり、ミニファイアが実行する必要があります。
(function () {
var x = 1, y;
console.log(y); // undefined
y = 2;
})();
それは確かに可能です。コンプレッサーは、var
出力を生成する前に、含まれているステートメントについて関数全体をスキャンします。これは、変数名を圧縮するために必要です。
var
パラメータリストを拡張し、ステートメントを完全に削除することで余分なバイトを節約するという、トリッキーなバリエーションが1つあることに注意してください。
(function (x,y) {
x = 1;
console.log(y); // undefined
y = 2;
})();
ただし、これにより関数の(めったに使用されない)length
プロパティが変更されるため、ミニファイアからは期待されません。