<!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 = false;
//对a进行非运算
a = !a;
console.log(a);//true //如果对非布尔值进行运算,则会将其转换为布尔值,然后再取反
var b = 10;
b = !!b;
console.log(b); //true
console.log(typeof b); //boolean //------------------------------------------------------------------------ //如果两个值都是true则返回true
var result = true && true;
console.log(result); //true //只要有一个false,就返回false
result = true && false;
result = false && true;
result = false && false;
console.log(result); //false //第一个值为true,会检查第二个值
true && alert("看我出不出来!!");//可以弹窗 //第一个值为false,不会检查第二个值
false && alert("看我出不出来!!");//没有出现弹窗 //-------------------------------------------------------------------- //两个都是false,则返回false
result = false || false;
console.log("result = "+result);//false //只有有一个true,就返回true
result = true || false;
result = false || true ;
result = true || true ;
console.log("result = "+result);//true //第一个值为false,则会检查第二个值
false || alert("123"); //可以弹窗 //第一个值为true,则不再检查第二个值
true || alert("123"); //没有出现弹窗 </script>
</head>
<body>
</body>
</html>

JS基础_逻辑运算符的更多相关文章

  1. JS基础_标识符

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. JS基础_全局作用域

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. JS基础_函数的简介

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. JS基础_数组的遍历

    遍历:将数组中所有的元素都取出来 1.for循环 var arr = ["1","2","3"]; for(let i=0;i<arr ...

  5. JS基础_垃圾回收(GC)

    垃圾回收(GC) 程序运行过程中也会产生垃圾,这些垃圾积攒过多以后,会导致程序运行的速度过慢,所以我门需要一个垃圾回收的机制,来处理程序运行过程中产生的垃圾 当一个对象没有任何的变量或属性对它进行引用 ...

  6. JS基础_基本数据类型和引用数据类型

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. JS基础_属性名和属性值

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. JS基础_对象的简介、对象的基本操作

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. JS基础_流程控制语句

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

随机推荐

  1. vs2017中信号与槽连接

    在vs2012里和在Qt Creator里添加信号和槽不一样,这里把两种环境下怎么添加详细说明一下 1.在vs2012里添加信号和槽 新建一个qt的项目QtDemo 在qtdeom.h里添加槽 pri ...

  2. Winform运行外部控制台程序,并在程序结束后执行其他动作

    ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = @"程序名"; psi.Arguments = @&qu ...

  3. LC 900. RLE Iterator

    Write an iterator that iterates through a run-length encoded sequence. The iterator is initialized b ...

  4. springmvc快速入门(注解版本)

    1)springmvc快速入门(传统版) 步一:创建springmvc-day02这么一个web应用 步二:导入springioc,springweb和springmvc相关的jar包 ------- ...

  5. Qt编写数据可视化大屏界面电子看板1-布局方案

    一.前言 布局方案在整个数据可视化大屏界面电子看板系统中,是除了基础功能以外的核心功能之一,只有具备了布局方案这个功能,才能让用户随意调整自己想要的布局,保存成自定义名称的布局配置文件,这样就大大增加 ...

  6. ppt学习笔记

    文档:ppt学习笔记.note链接:http://note.youdao.com/noteshare?id=719a525ca3420e3692b1025d5d904c02&sub=4E52E ...

  7. k8s组件批量启动、查看状态

    查看所有master节点kube-apiserver ansible k8s -m shell -a 'systemctl status kube-apiserver' 重启所有master节点kub ...

  8. 如何使用QTP12 UFT做功能性测试(转载)

    首先,按照本博客的安装教程走的,右键管理员运行 接下来点击继续,这个界面只需要勾选到web即可 点击ok,开始运行 进入到主界面之后,file新建一个测试. 可以修改路径等等 点击create之后,出 ...

  9. kubeadm安装集群系列-3.添加工作节点

    添加工作节点 worker通过kubeadm join加入集群,加入所需的集群的token默认24小时过期 查看Token kubeadm token list # 如果失效创建一个新的 kubead ...

  10. webdriver的八种定位

    转自https://zhuanlan.zhihu.com/p/54588889 在UI层面的自动化测试开发中,元素的定位与操作是基础,也是经常遇到的困难所在.webdriver提供了8种定位: 1. ...