title: Will this statement ever evaluate to true?
body: <p>I'm new-ish to Javascript and need to make a change to this one script. I noticed this line of code that thoroughly confused me, however.</p>
  
  <pre><code>function FIValidateForm(aForWhom, aDoNotShowWarning, aFromWhere) 
  {
      try 
      {
          PAIWarnings = '';
          var pBlFalg = true;
  
          if (pBlFalg) 
              pBlFalg = mfpCheckForFISave(aForWhom, aDoNotShowWarning, aFromWhere);
  
          if (pBlFalg == true)
              pBlFalg = PAIErrors();
  
          if ((pBlFalg) &amp;&amp; (FIValidateForm.arguments.length == 1))
              mfpIFWarnings();
  
          return pBlFalg;
      }
      catch (err) 
      {
          logError(err, arguments.callee.trace());
      }
  }
  </code></pre>
  
  <p>During run time, if I put a breakpoint on that third <code>if</code> statement and inspect <code>FIValidateForm.arguments</code> I can see an array with 3 items. The first contains a <code>string</code>, the second is <code>null</code>, and the third is <code>undefined</code>. The array still has a length of 3.</p>
  
  <p>Am I correct in assuming that no matter what one were to pass to this method, <code>FIValidateForm.arguments.length == 1</code> will always be <code>false</code>? Or is there some other value I'm unaware of / alternative way to call this method so that <code>arguments.length</code> would equal 1?</p>
  
  <p>Edit: I see JS has an <code>arguments.length</code> and a <code>Function.length</code>. The latter returns the <em>expected</em> number of parameters... So then how does one call a method so that the value would be 1 when the function is defined with 3?</p>