1
考慮以下代碼:變量作爲屬性在JavaScript
<script type="text/javascript">
if ('mySuperProperty' in window)
{
alert(window['mySuperProperty']);
}
var mySuperProperty = 1;
</script>
條件的if語句的計算結果爲真實的,即使mySuperProperty尚未設定。爲什麼?
Try it yourself。 的JS代碼被第一解析和分析:
我從http://dfilatov.blogspot.com/2009/04/javascript.html(俄羅斯)
爲什麼不檢查window.mySuperProperty?更短,更可讀的imo。 – anddoutoi 2009-06-23 07:25:26
這是包裹在一個函數中,或簡單地在
表述「window.mySuperProperty」檢查mySuperProperty的值,它是在警報未定義
在另一方面mySuperProperty在窗口如果檢查窗口具有mySuperProperty的時間,在整個窗口命名空間中檢查(在每個屬性名稱設置後)。
THEREFOR,
如果(在窗口 'mySuperProperty')返回true>變量存在,但是沒有值尚未 如果(window.mySuperProperty)返回false> undefined是一個Falsy值。
來源
2009-06-23 07:37:24 ivb