`
apple_wxs
  • 浏览: 104439 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

运算符 && 和 || 的返回值

阅读更多
今天才知道,原来 && 和|| 的返回值是这样计算的
&&首先计算其左边的表达式,如果它的值为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>
分享到:
评论

相关推荐

    老生常谈javascript中逻辑运算符&&和||的返回值问题

    今天在做逻辑运算符的时候遇到一个小问题一直转不过弯来,var a=(undefined&&123)||(3||5)的返回值是什么? 首先是||的返回值问题: ||的返回值会返回最早遇到非以下类型的值: NaN null undefined 0 false; 所以3||...

    linux中的分号&&和&,|和||说明与用法

    `、逻辑运算符`&&`和`&`,以及管道符`|`和逻辑运算符`||`的用法。 首先,分号`;`用于在同一行内执行多个命令。例如,`command1 ; command2`,这两个命令会按照从左到右的顺序依次执行,无论前面的命令是否成功,...

    c0扩充编译器,实现三种优化,北航计算机

    C0文法 加法运算符> ::= +|- 乘法运算符> ::= * |/ 关系运算符> ::= ||>|>=|!=|== 字符> ::= _|a|...|z|A|...|Z ...注:返回值为void类型的子函数不允许出现在表达式中

    扩充C0编译器要求 北航计算机用

    C0文法 加法运算符> ::= +|- 乘法运算符> ::= * |/ 关系运算符> ::= ||>|>=|!=|== 字符> ::= _|a|...|z|A|...|Z ...注:返回值为void类型的子函数不允许出现在表达式中

    javascript &amp;&amp;和||运算法的另类使用技巧|angluo-javascript-53291.pdf

    JavaScript中的逻辑运算符`&&`和`||`通常用于布尔逻辑判断,但它们在实际编程中也有许多巧妙的用途,可以用来简化代码和控制流程。这两种运算符在jQuery和其他JavaScript库中广泛使用,以实现更高效和简洁的代码。 ...

    Javascript的&&和||的另类用法|angluo-javascript-110989.pdf

    JavaScript中的逻辑运算符`&&`和`||`通常用于逻辑判断,但在某些场景下,它们还可以作为巧妙的控制流程工具,这就是所谓的“另类用法”。这种用法可以帮助我们写出更简洁、高效的代码。 首先,我们来看`&&`运算符的...

    js中运算符&& 和 || 的使用记录|angluo-javascript-112609.pdf

    这在使用逻辑运算符时尤为重要,因为它决定了条件表达式的返回值。 最后,值得注意的是,逻辑运算符在JavaScript中除了基本的逻辑判断之外,还常常用于执行一些基于条件的命令或选择性地执行函数。比如,我们可以用...

    关于命令回传值的学习总结.docx

    在Linux或Unix shell脚本中,`&&` 和 `||` 是两种常见的逻辑运算符,它们用于控制命令的执行顺序和条件。`&&` 表示"与",`||` 表示"或"。 1. **`&&` (与) 运算符**: - 当前命令执行成功(返回值为0)时,才会执行...

    js 与或运算符 || &amp;&amp; 妙用|angluo-javascript-53595.pdf

    在JavaScript中,逻辑与运算符“&&”和逻辑或运算符“||”是常用的运算符,它们通常用于条件语句中,但由于它们的“短路”特性,在很多情况下可以通过它们来精简代码。逻辑与运算符“&&”会在其左操作数为false时...

    js中的 || 与 && 运算符详解

    JavaScript中的逻辑运算符&&和||用于进行布尔逻辑运算,它们在编程中非常常见。这些运算符在进行逻辑判断时,会根据条件的不同返回不同的值。具体来说,&&运算符要求两边的表达式都为真时才返回真,而||运算符只要求...

    理学数据运算c语言PPT学习教案.pptx

    前置运算符(如`++a`)先执行操作再返回值,而后置运算符(如`a++`)先返回值再执行操作。当自增或自减运算符与其他运算符混合使用时,前后置的区别会体现出来。 接着,关系运算涉及比较两个运算对象的大小。C语言...

    c语言陷阱.docx

    1.2 & 和 | 是位运算符,&& 和 || 是逻辑运算符。 1.3 C 编译器读入字符使用贪心法,从左到右一个一个读入,判断已读入的字符串是否可以组成一个符号。 1.4 整型常量第一个字符是 0,就会被视为八进制数。 1.5 单...

    java基础学习笔记

    在Java中,有逻辑运算符`&`、`|`、`&&`和`||`。`&`和`|`是按位运算符,总是会执行两边的操作数。而`&&`和`||`是逻辑运算符,它们具有短路特性。`&&`运算符如果左侧操作数为`false`,则不会评估右侧;`||`运算符如果...

    C语言避坑指南.pdf

    逻辑运算符 `&&` 和 `||` 具有短路特性,即如果第一个操作数足以确定结果,则不会评估第二个操作数。这在某些情况下是有益的,但在其他情况下可能会导致意外行为。 **解决方案**: 在使用逻辑运算符时考虑其短路特性...

    C语言的教程课件大纲.docx-C语言编程基础与进阶-C语言编程基础与进阶

    C语言编程基础与进阶 第一章:C语言概述 C语言的历史与特点 C语言的应用领域(操作系统、嵌入式系统、游戏开发等) C语言程序的基本结构(main函数、注释、预处理...函数的返回值 标准库函数的使用(如printf, scanf,

    Java语言入门教程(八):Java语言中的运算符与流程控制[文].pdf

    `++`和`--`是自增和自减运算符,它们可以放在变量前或后,影响结果的返回值。例如: - `i++`先返回`i`的原始值,然后增加`i`。 - `++i`先增加`i`,然后返回新值。 2. **位运算符** 包括`&`(按位与)、`|`(按位...

    重庆理工大学C语言考试题目及其答案 PPT课件.pptx

    * 函数的参数和返回值 * 函数的调用和应用 Knowledge Point 6: 数组 * 数组的定义和声明 * 数组的初始化和赋值 * 数组的索引和遍历 Knowledge Point 7: 指针 * 指针的定义和声明 * 指针的操作 (指针运算符 &, *,...

    java语言编程规范.pdf

    - 为公共类、方法和字段使用JavaDoc注释,包括描述、参数、返回值、异常和自版本以来的改变。 - JavaDoc注释通常用于自动生成代码文档。 6. 异常处理 - Java中使用try-catch-finally块来处理异常。 - 在适当的...

    C程序设计复习要点实用PPT课件.pptx

    循环语句有`for`, `while`, 和`do-while`,`continue`用于提前结束当前循环迭代,`break`则退出整个循环,`goto`为无条件跳转,`return`语句用于函数中返回值或结束函数执行。 9. **switch语句**:提供了多分支选择...

Global site tag (gtag.js) - Google Analytics