&&首先计算其左边的表达式,如果它的值为false或可被转换为false(null、NaN、0或undefined),那么将返回左边表达式的值,否则,它将计算右边的表达式, 并返回这个表达式结果作为 &&运算的结果。
||首先计算其左边的表达式,如果它的值 不为 false或 不可被转换为 false(null、NaN、0或undefined),那么将返回左边表达式的值,否则,它将计算右边的表达式,
||首先计算其左边的表达式,如果它的值 不为 false或 不可被转换为 false(null、NaN、0或undefined),那么将返回左边表达式的值,否则,它将计算右边的表达式,
并返回这个表达式结果作为||运算的结果。
代码
<
HTML
>
< HEAD >
< TITLE > 运算符&&和||的返回值 </ TITLE >
</ HEAD >
< BODY >
&&首先计算其左边的表达式,如果它的值 < font color =blue > 为false </ font > 或 < font color =blue > 可被转换为false </ font >< font color =red > (null、NaN、0或undefined) </ font > ,那么将返回左边表达式的值,否则,它将计算右边的表达式,
并返回这个表达式结果作为 &&运算的结果。 < br >
||首先计算其左边的表达式,如果它的值 < font color =blue > 不为false </ font > 或 < font color =blue > 不可被转换为false </ font >< font color =red > (null、NaN、0或undefined) </ font > ,那么将返回左边表达式的值,否则,它将计算右边的表达式,
并返回这个表达式结果作为 ||运算的结果。
< hr >
< SCRIPT LANGUAGE ="JavaScript" >
function dwn(s)
{
document.write(s + " <br/> " );
}
dwn( " null && 33 = " + ( null && 33 )); // null
dwn( " NaN && 33 = " + (NaN && 33 )); // NaN
dwn( " 0 && 33 = " + ( 0 && 33 )); // 0
dwn( " undefined && 33 = " + (undefined && 33 )); // undefined
dwn( " true && 33 = " + ( true && 33 )); // 33
dwn( " false && 33 = " + ( false && 33 )); // false
dwn( " 33 && 44 = " + ( 33 && 44 )); // 44
dwn( " --------- " );
dwn( " null || 33 = " + ( null || 33 )); // 33
dwn( " NaN || 33 = " + (NaN || 33 )); // 33
dwn( " 0 || 33 = " + ( 0 || 33 )); // 33
dwn( " undefined || 33 = " + (undefined || 33 )); // 33
dwn( " true || 33 = " + ( true || 33 )); // true
dwn( " false || 33 = " + ( false || 33 )); // 33
dwn( " 33 || 44 = " + ( 33 || 44 )); // 33
</ SCRIPT >
< hr >
同时javascript中 if (expression) statement; 语句的判断也是 < br >
看 expression 是否是不是 false 或 能不能转换成false(null、NaN、0或undefined) < br >
如果能 则不执行 statement; 否则就执行 statement;
< hr />
< SCRIPT LANGUAGE ="JavaScript" >
<!--
if ( null )
dwn( " null test " );
if ( 0 )
dwn( " 0 test " );
if (undefined)
dwn( " undefined test " );
if (NaN)
dwn( " NaN test " );
if ( 444 )
dwn( " 444 test " );
// -->
</ SCRIPT >
< hr >
由此可见,if (a==b)dosth();和a==b& &dosth ();或a!=b||dosth()等价
</ BODY >
</ HTML >
< HEAD >
< TITLE > 运算符&&和||的返回值 </ TITLE >
</ HEAD >
< BODY >
&&首先计算其左边的表达式,如果它的值 < font color =blue > 为false </ font > 或 < font color =blue > 可被转换为false </ font >< font color =red > (null、NaN、0或undefined) </ font > ,那么将返回左边表达式的值,否则,它将计算右边的表达式,
并返回这个表达式结果作为 &&运算的结果。 < br >
||首先计算其左边的表达式,如果它的值 < font color =blue > 不为false </ font > 或 < font color =blue > 不可被转换为false </ font >< font color =red > (null、NaN、0或undefined) </ font > ,那么将返回左边表达式的值,否则,它将计算右边的表达式,
并返回这个表达式结果作为 ||运算的结果。
< hr >
< SCRIPT LANGUAGE ="JavaScript" >
function dwn(s)
{
document.write(s + " <br/> " );
}
dwn( " null && 33 = " + ( null && 33 )); // null
dwn( " NaN && 33 = " + (NaN && 33 )); // NaN
dwn( " 0 && 33 = " + ( 0 && 33 )); // 0
dwn( " undefined && 33 = " + (undefined && 33 )); // undefined
dwn( " true && 33 = " + ( true && 33 )); // 33
dwn( " false && 33 = " + ( false && 33 )); // false
dwn( " 33 && 44 = " + ( 33 && 44 )); // 44
dwn( " --------- " );
dwn( " null || 33 = " + ( null || 33 )); // 33
dwn( " NaN || 33 = " + (NaN || 33 )); // 33
dwn( " 0 || 33 = " + ( 0 || 33 )); // 33
dwn( " undefined || 33 = " + (undefined || 33 )); // 33
dwn( " true || 33 = " + ( true || 33 )); // true
dwn( " false || 33 = " + ( false || 33 )); // 33
dwn( " 33 || 44 = " + ( 33 || 44 )); // 33
</ SCRIPT >
< hr >
同时javascript中 if (expression) statement; 语句的判断也是 < br >
看 expression 是否是不是 false 或 能不能转换成false(null、NaN、0或undefined) < br >
如果能 则不执行 statement; 否则就执行 statement;
< hr />
< SCRIPT LANGUAGE ="JavaScript" >
<!--
if ( null )
dwn( " null test " );
if ( 0 )
dwn( " 0 test " );
if (undefined)
dwn( " undefined test " );
if (NaN)
dwn( " NaN test " );
if ( 444 )
dwn( " 444 test " );
// -->
</ SCRIPT >
< hr >
由此可见,if (a==b)dosth();和a==b& &dosth ();或a!=b||dosth()等价
</ BODY >
</ HTML >