有是一個和Javascript在C採用了在那裏你可以進行邏輯檢查,沒有檢查什麼語法:JavaScript中無表達式語句的完整形式是什麼?
if (foo) {
}
這是什麼相當於?它是:
if (foo != null) { }
if (foo !== null) { }
if (typeof(foo) != 'undefined') { }
if (typeof(foo) !== 'undefined') { }
if (typeof(foo) != 'object') { }
if (typeof(foo) !== 'Object') { }
我詢問是想以確保成員「存在」的實際動機(也就是說,如果是null
或undefined
那麼它不存在):
if (window.devicePixelRatio !== null)
if (window.devicePixelRatio != null)
if (!(window.devicePixelRatio == null))
if (!(window.devicePixelRatio === null))
if (!(window.devicePixelRatio == undefined))
if (!(window.devicePixelRatio === undefined))
if ((window.devicePixelRatio !== undefined))
我擔心的是如果成員是定義爲,但定義爲null
,在這種情況下(就我而言)它沒有被分配。
我知道無表達式語法返回true
爲「truthy」值。作爲實際值,我對「truthy」值的興趣不大。
請注意,如果foo定義並等於'0',它也會返回false。 – Cristy
@Cristy在這種情況下,它是一個有效值:) –
@IanBoyd,它是有效的,但'if'沒有執行。 'var foo = 0;如果(foo)console.log(1)'不輸出任何內容,那麼它與任何這些都不相等。 – Cristy