JavaScript基础知识-逻辑运算符

                                          作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.JavaScript源代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>逻辑运算符</title> <script type="text/javascript">
/**
* Js中我们提供了三种逻辑运算符:
* 非("!"):
* 可以用来对一个值进行非运算,所谓非运算就是对一个布尔值进行取反操作,如true取反变false,false取反变true;
* 如果对一个值进行两次取反,它不会变化,可以为一个任意数据去两次反,来将其转换为布尔值,原理和Boolean()函数一样;
* 如果对非布尔值进行运算,则会将其转换为布尔值,然后再取反,所以我们可以利用该特点,来将一个其它的数据类型转换为布尔值;
*
* 与("&&"):
* 可以对符号两侧的值进行与运算并返回结果,两个值只要有一个值为false就会返回false,只有两个值都为true时才会返回true;
* JS中的与运算属于"短路与",即第一个值为false就不会检查第二个值;
*
* 或("||"):
* 可以对符号两侧的值进行或运算并返回结果,两个值只要有一个值为true就会返回true,如果两个值都为false才会返回false;
* JS中的或运算属于"短路或",即第一个值为true就不会检查第二个值;
*/ var a = true;
a = !a; var b = "yinzhengjie";
b = !!b;
console.log("a = " + a);
console.log("b = " + b); var c = true && true; var d = true && false; console.log("c = " + c);
console.log("d = " + d); /**
* 非布尔值的与或运算:
* 会先将其转换为布尔值,然后再运算,并且返回原值,由于JS中与是短路与,因此与运算规则如下:
* 如果第一个值为true,则必然返回第二个值;
* 如果第一个值为false,则必然返回第一个值;
*
* 同理,由于JS中与是短路或,因此或运算规则如下:
* 如果第一个值为true,则直接返回第一个值;
* 如果第一个值为false,则返回第二个值;
*
*/
var e = 10 && 20; //true && true,两个值都为true,则返回后面的一个; var f = 0 && 10; //false && true,两个值中有false,则返回靠前的false; var g = NaN && 0; // console.log("e = " + e);
console.log("f = " + f);
console.log("g = " + g); var h = 30 || 50; //true || true,两个值都为true,则直接返回第一个值
var i = -1 || "2019"     //true || true
console.log("h = " + h);
console.log("i = " + i); </script>
</head>
<body>
</body>
</html>

二.浏览器打开以上代码渲染结果

最新文章

  1. 使用Zabbix监控Oracle数据库
  2. struts2实现文件上传(多文件上传)及下载
  3. docker-9 supervisord 参考docker从入门到实战
  4. Elasticsearch 运维实战之1 -- 集群规划
  5. weixin 公众平台开发
  6. php课程---数组
  7. 设计模式C#实现(一)——模板方法模式
  8. nessus网页报错: Scans can not be saved without a policy. Please create a policy before proce
  9. opacity兼容写法
  10. ios开发与安卓开源项目及库
  11. MyEclipse 2014 + JSP+ Servlet
  12. 父元素onmouseover触发事件在父子元素间移动不停触发的问题
  13. Codeforces Round #329 div2
  14. c语言中数组相关问题
  15. datatable的数据转置
  16. Merge into的使用具体解释-你Merge了没有
  17. 《JavaScript语言精髓与编程实践》读书笔记二
  18. handler更新UI主线程
  19. Linux GIT服务器配置
  20. Qt--自定义Delegate

热门文章

  1. Vue.js动态组件
  2. MyBatis的一级缓存和二级缓存简介笔记
  3. 9、Dockerfile实战-Nginx
  4. react脚手架改造(react/react-router/redux/eslint/karam/immutable/es6/webpack/Redux DevTools)
  5. 虚拟机console最小化安装操作系统图文
  6. pthon自动化之路-编写登录接口
  7. RPG游戏开发基础教程
  8. 高可用Kubernetes集群-14. 部署Kubernetes集群性能监控平台
  9. PAT甲题题解-1055. The World&#39;s Richest (25)-终于遇见一个排序的不水题
  10. JavaScript高级程序设计学习笔记2