title: JSHint error - Expected an assignment or function call and instead saw an expression
body: <p>Why does the following code trigger "Expected an assignment or function call and instead saw an expression." in <a href="http://www.jshint.com/" rel="nofollow">JSHint</a>? I thought this was the correct way to protect a block from executing if a particular variable or variables are not defined...</p>
  
  <pre><code>!function($) {
      "use strict";
  
      // jQuery-based code here
      $('.test').show();
  }(window.jQuery);
  </code></pre>