javascript运算符——逻辑运算符全面解析_javascript技巧_第1页
javascript运算符——逻辑运算符全面解析_javascript技巧_第2页
javascript运算符——逻辑运算符全面解析_javascript技巧_第3页
javascript运算符——逻辑运算符全面解析_javascript技巧_第4页
javascript运算符——逻辑运算符全面解析_javascript技巧_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、javascript 运算符 解析逻辑运算符全面前面的话逻辑运算符对操作数进行布尔运算,经常和关系运算符一样配合使用。逻辑运算 符将多个关系表达式组合起来组成一个更复杂的表达式。逻辑运算符分为逻辑非 '!'、逻辑与'&&'、逻辑或3种,本文将介绍这三种逻辑运算符 逻辑非 逻辑非操作符由一个叹号(!)表示,可以应用于ecmascript中的任何值。无论这 个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非操作符首先会将 它的操作数转换成一个布尔值,然后再对其求反 逻辑非对操作数转为布尔类型的转换类型与boolean()转型函数相同,只不过最

2、后再将其结果取反。而如果同吋使用两个逻辑非操作符,实际上就会模拟 booleano转型函数的行为 console. log(!undefined);/false console. log(!null);/false console. log(!0);/false console. log(!-0);/false console. log(!nan);/falsc console. log(!',);/false console. log(!false);/falseconsole. log(! ! ) ;/trueconsole. log(!);/trueconsole. log(!n

3、ew boolean (false);/true console. log(!false);/false console. log(!new boolean(null);/true console. log(!null) ;/fdlsc逻辑非运算符常常用于控制循环/boolean变量(bfound)用于记录检索是否成功。找到问题屮的数据项吋, bfound将被设置为true, !bfound将等于false,意味着运行将跳屮i while循 环var bfound = false;var i = 0;wh订e (!bfound) if (avaluei二二 vsearchvalues) bfo

4、und 二 true; else i+;逻辑与逻辑与运算符曲两个和号(&&)表示,冇两个操作数,只冇在两个操作数都为true 时,结果才返回true,否则返回false/逻辑与(&&)的真值表第一个操作数第二个操作数truetruetruet ruefalsefalsefalsetruefalse结果falsefalsealse逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值。如果其中一个操 作数不是布尔值,则逻辑与操作不一定返冋布尔值逻辑与操作屈于短路操作,如果第一个操作数能够决定结果,那么就不会再对第 二个操作数求值对于逻辑与而言,如果笫一个操作数是f

5、alse,则无论第二个操作数是什么值, 结果都是false,则返冋第一个操作数;如果第一个操作数为true,则结果的真 假和第二个操作数的真假相同,则返回第二个操作数/除了 false、undefined、null、+0、-0、nan>这 7 个假值,其余都是真值console, logc f &&''); 因为't'是真值,所以返回'' console. logc f && ' f') ; /因为't'是真值,所以返回'f' console. log(,t,

6、&& 1 + 2) ; /因为't'是真值,所以返冋 3 console, log(,? && ' f') ; /因为是假值,所以返回 console, log('' &&''); 因为'是假值,所以返回var i 二 1;var result = (true && i+);console. log(result, i) ;/因为 true 是真值,所以执行 i+, i 是 2, result 是1var i = 1;var result = (false &

7、amp;& i+);console, log (result, i) ;/因为 false 是假值,所以不执行 i+, i 是 1, result 是 false逻辑与运算符可以多个连用,返冋第一个布尔值为false的表达式的值console, log(true && 'foo' && '' && 4 && 'foo' && true);/ ''关系运算符的优先级比逻辑与(&&)和逻辑或(i i)的优先级高,所以类似表达式可 以

8、直接书写,不用补充圆括号if +1二二2 && b+2=3) /todo可以使用逻辑与运算符來取代if结构if (a = b) dosomething();/等价于(a 二二 b) && dosomethingo ;逻辑与运算符常常用于回调函数使用小/若没有给参数a传值,则a为默认的undefined,是假值,所以不执行a(), 防止报错,如果给参数a传值,则执行函数a()function fn(a)if (a) a();/等价于function fn(3)a && a();逻辑或逻辑或运算符由两个竖线(h)表示,冇两个操作数,只冇在两个操作数都

9、是 false时,结果才返冋false,否则返回true/逻辑或(h)的真值表第一个操作数 第二个操作数 结果 truetruetruetruefalsetruefalsetruetruefalsefalsefal se同样地,逻辑或操作也可以应用于任何类型的操作数,而不仅仅是布尔值。如杲 其中一个操作数不是布尔值,则逻辑或操作不一定返回布尔值 逻辑或操作也屈于短路操作,如果第一个操作数能够决定结果,那么就不会再对 笫二个操作数求值console. log(,t' con sole. log(,t' console. log(,' consolc. log('&

10、#39;对于逻辑或而言,如果第一个操作数是true,则无论第二个操作数是什么值, 结果都是true,则返冋第一个操作数;如果第一个操作数是fales,则结果的真 假和第二个操作数的真假相同,则返回第二个操作数'');/因为't'是真值,所以返冋气'f');/因为't'是真值,所以返回气 'f');/因为'是假值,所以返回厂 '');/因为是假值,所以返回var i = 1;var result 二(true | i+);console. log(resul t, i) ;/因为 true 是真值,所以不执行 i+, result 是 true, i是1var i = 1;var result 二(false | i+);console. log(result, i) ;/因为 false 是假值,所以执行 i+, i 是 2, result 是1 同样地,逻辑或运算符也可以多个连用,返回第一个布尔值为true的表达式的 值true);/ 4console.log(fa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论