2014-01-20 38 views
0

在頁面上簡單的例子工作,我發現這段代碼:js語法:如何解釋這個:return !!(exp);

function hasGetUserMedia() { 

return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); 

} 

,並通過了一驚:回報!!(EXP)

有人能解釋這種 '!' ?這是換行嗎?或避免返回值?

我找不到任何關於這種(怪異)語法

感謝用法也不信息!

+0

好的抱歉,重複和非常感謝精度,強制返回值類型既棘手又有用! ......應該早點考慮一下...... – user3215919

回答

1

!!將值強制轉換爲表示原始值是「truthy」還是「falsy」的布爾值。例如:

!!"foo" // true 
!!"" // false 

鑑於!是否定運算符,使用它曾經將一個值轉換成一個布爾值,就是它的相反是truthy/falsy值。例如,

!"foo" // false 
!"" // true 

添加另一!否定否定,導致原來的非布爾值的truthy/falsy岬匹配的布爾值。

0

下面的代碼強制將表達式轉換爲布爾值。

function hasGetUserMedia() { 

    return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); 

}