我明白what the double not operator does in JavaScript。我很好奇它是否有用,以及我最近提出的斷言是否正確。何時在JavaScript中使用double not(!!)運算符
我說if (!!someVar)
是從來沒有意義的,也不是(!!someVar && ...
,因爲無論是if
和&&
會導致someVar作爲一個布爾值進行評價,對!是多餘的。
事實上,我唯一能想到的是,使用double not運算符是合法的,如果你想對另一個布爾值進行嚴格比較(所以也許在返回值期望true或false明確)。
這是正確的嗎?我開始懷疑自己,當我注意到jQuery 1.3.2同時使用if (!!someVar)
和return !!someVar && ...
在這些情況下,double是否沒有任何實際效果?
我個人的意見是,這隻會導致混淆。如果我看到一條if語句,我知道它正在評估它是一個布爾值。
請注意(正如賈斯汀在他的回答你指出的問題中指出http://stackoverflow.com/questions/1406604/what-does-the-operator-double-exclamation-point-mean-in-javascript/ 1407785#1407785),沒有雙重操作符。 '!!'僅僅適用於非運算符兩次。 – outis 2010-02-01 04:31:36
這個'操作符'是慣用語的定義......除非你知道它是什麼,否則你很可能會感到困惑或者僅僅把它誤認爲是一個'不'。我將開始使用它來混淆我的同事:D如果有人感興趣,我在jQuery.grep – Sprague 2013-11-28 16:50:50
中看到了'wild'中的相關內容:[if(!! condition)和if (條件)](http://stackoverflow.com/q/19818574/1048572) – Bergi 2014-07-19 17:45:54