in javascript, argument order of evaluation and delayed evaluation
<ol>
<li><p>if <code>function( arg1, arg2 )</code>, am I correct in believing <code>arg1</code> is guaranteed to evaluated before <code>arg2</code> (unlike classic C for example)?</p></li>
<li><p>is there any way to have a function where the arguments are not evaluated, but rather evaluated on demand?  for example, <code>if( cond1 || cond2 )</code> evaluates <code>cond2</code> if and only if <code>cond1</code> is false.  is it possible to write our own <code>if</code>-like function?</p></li>
</ol>

<p>for example, could I write a function like oracle's <code>nvl( arg1, arg2, ... )</code>, which returns the first non-null argument, evaluating them lazily.  in a regular function call, all arguments are evaluated before the function body is executed.</p>
