我一直在與同事辯論這個話題大概一週。我非常喜歡速記代碼,儘可能使用三元數等。最近,他一直在關注我使用雙重驚歎號。經過多次測試後,我開始同意他的觀點......在我的代碼中使用雙重驚歎號可能並不明智。考慮到這一點:JS雙感嘆號 - 有沒有什麼好的理由使用它?
var myvar = "Hello";
return (!!myvar ? "Var is set" : "Var is not set");
上述示例按預期工作。但是,如果我們檢查可能返回未定義的變量,則會發生錯誤,尤其是在IE7中。我們得到了我們預期的結果,但是,如果我們在控制檯中運行以下命令:
使用這種方法,如果變量是不確定的,它靜靜地失敗。這讓我質疑完全使用雙重感嘆號。有沒有真正讓這個運營商受益的情況?
(給予好評使用單詞「感實性」!) 很好的解釋,這也是值得注意的是,當你使用這個操作是這樣的: 'return !!(window.Object &&(obj1.function1 || obj.2function2)));' 它擴展了整個「強制轉換」所有的東西。 convertallthethings.jpeg –