次のコード スニペットでは、グローバル変数を宣言し、関数内での存在を確認しています。
<script>
x = 5;
$(function() {
var x = x || 3;
console.log(x); // prints 3
});
</script>
これは異なる動作をします:
<script>
x = 5;
$(function() {
var y = x || 3;
console.log(y); // prints 5
});
</script>
最初の例では、内部スコープの変数宣言が x が既にグローバル スコープに存在することを検出し、その値を取ることを期待しています。最初の例はなぜ 3 なのですか?
Specifically I recently wrote some code that checks var _gaq = _gaq || []
in a jQuery ready scope and was confused when nothing was getting pubbed to Analytics.