原文:JS中的逻辑运算符&&、||

1、JS中的||符号:

运算方法:

只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。

只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。

总结:真前假后;

2、JS中的&&符号:

运算方法:

只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

总结:假前真后;

总之:谁重要就返回谁;&& 优先级高于 ||

 alert((1&&3||0)&&4);
alert(1&&3||0&&4);
alert(0&&3||1&&4);

看到第一行:

1&&3 :对于&& 如果前面的是真的,它还需要知道后面的值是否是真的,所以当前面为真了,那么后面的值决定了它的真假,所以 前面真了,就返回后面的值;所以 1&&3 结果是3

3||0,对于|| ,如果前面的值是真,那么后面的值是否是真、假不重要,所以返回前面的值,因为他才是重要的;所以 3||0 结果是 3

3 &&4 同理 3&&4 返回4;

综上:第一行的数据返回结果是 4;

第二行:

1&&3 前面是真,重要的是后面的值,返回3;

0&&4 前面为假了,那么对于&&而言 后面是什么都不重要,因为都是假的,所以返回0;

3&&0 同理,返回3;

综上:第二行的数据返回结果是 3;

第三行:

0&&3,返回0,&&运算而言 前面已经是假了,就返回了,即0;

1&&4,返回4,&&前面是真,还得看看后面的值,后面的值重要,因为他决定了 真假;

0||4,对应 || 前面是假了,后面的值就很重要了,后面的值决定了该条语句的真假,所以返回4;

综上:第三行数据返回4;

弄懂了以上说的还应该知道:

js的6个蛋蛋:在js逻辑运算中,0、”“、null、false、undefined、NaN都会判为false,其他都为true。

其实 II  && 常用来判断当前获取的值是否“有效”;比如表单验证,

比如:

<form>
<input type="text" name="username" id="username">
<input type="password" name="password" id="password">
</form>
var username = $("#username").val()
var password = $("$password").val()
if(!!username ){
alert("请输入用户名")
}
if(!!password ){
alert("请输入密码")
}

但是大多数时候除了需要知道值的真假,还要赋值;如果是假,则赋值;所以 || 和&&特别重要。

var a = x || 0;

var b = parseInt(a);

在这种情况下,运算符就起到了特别大的作用,x=undefined,如果直接parseInt(x),就报错了。。。。

本文参考地址:https://www.cnblogs.com/yuanxinghuo/p/7881366.html

JS中的逻辑运算符&&、||的更多相关文章

  1. js中的逻辑运算符详解(||、&&、!)

    视频地址:https://www.bilibili.com/video/BV1Y7411K7zz?p=1 一直以来都没弄清楚js中的逻辑运算符是怎么回事 , 一直都以为他们的用法和java一样 , 今 ...

  2. JS中的逻辑运算符&&、||,位运算符|,&

    1.JS中的||符号: 运算方法: 只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值. 只要“||”前面为true,不管“||”后面是true还是fals ...

  3. JavaScript基础&实战(2)js中的强制类型转换、运算符、关系运算符、逻辑运算符、条件运算符

    文章目录 1.强制类型转换Number 1.1 代码 1.2 测试结果 2.进制表示 2.1 代码 2.2 测试结果 3.强制类型转换为Boolea 3.1 代码 3.2 测试结果 4.运算符 4.1 ...

  4. js中的逻辑与(&&)和逻辑或(||)

    之前有一个同事去面试,面试过程中碰到这样一个问题: 在js中写出如下的答案 : var a = 2; var b = 3; var andflag = a && b ; var orf ...

  5. js中的运算符和条件语句

    js中的运算符大体上可以分为4类:1算术运算符.2一元操作符.3比较运算符.4逻辑运算符. 算术运算符一般指的是加减乘除求余这五种操作符:+,-,*,/,%.通过算术运算符可以对js中的变量进行操作. ...

  6. js中三目运算符和&& || 符的个人浅见

    这两天看到别人写的代码,感觉很牛逼,如下,大神请忽视 $(".lgn").on("click", function() { var a = {}; a.logi ...

  7. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...

  8. JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构

    JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...

  9. 关于JS中涉及的常用类型转换及运算符表达式

    JS中的常用类型转换(一般用强制转换):1.强制转为整数:parseInt:写法:x = parseInt(x); 2.强制转换位小为:parseFloat:写法:x = parseFloat(x); ...

随机推荐

  1. leetcode:124. 二叉树中的最大路径和

    题目描述: 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: [1,2,3] 1 ...

  2. Learning to Learn and Predict: A Meta-Learning Approach for Multi-Label Classification

    Learning to Learn and Predict: A Meta-Learning Approach for Multi-Label Classification 2019-10-01 11 ...

  3. order by 多个条件

    ORDER子句按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),缺省是升序.ORDER子句通常放在SQL语句的最后.ORDER子句中定义了多个字段,则按照字段的 ...

  4. QPS/TPS的预估

    先说标准概念: TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数.TPS包括一条消息入和一条消息出,加上一次用户数据库访问.(业务TPS = ...

  5. ubuntu16 安装 qBittorrent ( Linux下BT下载图形工具 )

    qBittorrent 是QT编写的一款BT下载软件,支持FreeBSD, Linux, macOS, OS/2, Windows: 官网:https://www.qbittorrent.org/ 在 ...

  6. Windows下将网络共享目录挂载到指定文件夹

    简述 因为某些原因,设计好的目录结构是不能动的,因此需要将网络共享目录挂载到指定目录下,以便扩容. 在Linux下这完全没有问题,但是Windows下的操作就稍微复杂一点. 1.直接使用net use ...

  7. mysql判断表字段或索引是否存在,然后修改

    判断字段是否存在: DROP PROCEDURE IF EXISTS schema_change; DELIMITER // CREATE PROCEDURE schema_change() BEGI ...

  8. 字典的key都可以是什么

    一个对象能不能作为字典的key,就取决于其有没有__hash__方法.所以所有python自带类型中,除了list.dict.set和内部至少带有上述三种类型之一的tuple之外,其余的对象都能当ke ...

  9. java初中级面试题(最新版)

    Java基础方面: 概念 1.什么是面向对象? 万物皆对象,把现实中有共同特性行为的对象抽象成类,类是程序中最基本的单位. 2.类和对象 面向对象的思想是如何在java展现的呢? 就是通过类和对象 * ...

  10. JAVA 创建也项目平级文件

    String url = System.getProperty("user.dir") +"/logs/test.txt" File file = new Fi ...