title: Considering best practices, can we use double unary operator ! in JavaScript?
body: <p>For my understanding the unary <code>!</code> operator performs implicit type conversions, and are sometimes used for type conversion.</p>
  
  <p>So basically the <code>!</code> operator converts its operand to a boolean and negates it.</p>
  
  <p>Now:</p>
  
  <pre><code>!!x // Same as Boolean(x)
  </code></pre>
  
  <p>In fact:</p>
  
  <pre><code>!!'true' === Boolean('true') // true
  </code></pre>
  
  <p>So I am assuming both <code>!!x</code> and <code>Boolean(x)</code> perform the same action.</p>
  
  <p>I would like to know:</p>
  
  <ul>
  <li>Do you know any caveats making my assumptions wrong?</li>
  <li>Which way should be preferred in term of good practice?</li>
  <li>Do you know any differences to be aware among different ECMAScript versions or Browser vendors?</li>
  </ul>