javascript - IE detection: what the heck does this mean? -


i looking @ piece of code detects ie browser:

if (false || !!document.documentmode) 

and not understanding contraption. why necessary or false , use not twice?

if loaded below file in ie9, ff or opera, ie tell me document mode there, while later 2 otherwise:

<html> <head>     <script>function ld() {         if (document.documentmode){             document.getelementbyid("p1").innerhtml = 'document mode detected'         }         else {             document.getelementbyid("p1").innerhtml = 'no document mode'         }     }</script> </head> <body onload="ld()"> <p id="p1"></p> </body> </html> 

is not sufficient , why? not clear, because if replaced condition 1 in original question, result same. missing?

why necessary or false [...]

it isn't necessary. || operator, given false 1st operand, will return 2nd operand.

// lval || rval (minus short-circuiting) function or(lval, rval) {     if (lval)         return lval;     else         return rval; }  or(false, 'foo') // 'foo' 

[...] , use not twice?

this part already has answer here on so.

two ! operators perform "toboolean" type conversion, slighter shorter version of using boolean() without new:

!!document.documentmode        // true/false boolean(document.documentmode) // true/false 

also, if will perform same type conversion itself.

2. if toboolean(getvalue(exprref)) true 

so, when testing single value truthiness, !! aren't either, suggested:

if (document.documentmode) 

Popular posts from this blog