原文: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. 怎么让input默认为0

    <span class="item_title">供应商定金</span> <div class="flex-fill flex" ...

  2. Python-DDT框架

    Install pip install ddt 实例 import unittest from ddt import ddt, data, unpack @ddt class MyTestCase(u ...

  3. oracle 如何通过分组计数查出重复数据?

      1.情景展示 现在,机构表数据中机构名称有重复数据,如何筛选出来? 2.分析 第一步:统计是否存在重复数据. 方式一: 方式二: 说明表中确实存在重复数据 第二步:统计重复次数及机构名称. 需要通 ...

  4. 记一次netty http server给客户端返回reset包排除

    类似文章:解决用netty去做web服务时,post长度过大的问题 现象:当客户端给server发送的请求体较大时,服务直接给客户端返回reset包. tcpdump: 应用还没有完全收上去,就clo ...

  5. java中过滤器(Filter)与拦截器(Interceptor )区别

    过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集.控制权限.控制转向.做一些业务逻辑判断等.其工作 ...

  6. MORMOT REST文件上传

    MORMOT REST文件上传 上传数据格式必须是:MULTIPART/FORM-DATA uses SynCommons 后端处理参照下列代码: 后端处理参照下列代码: procedure TWeb ...

  7. VUE 动态加载组件的四种方式

    动态加载组件的四种方式: 1.使用import导入组件,可以获取到组件 var name = 'system'; var myComponent =() => import('../compon ...

  8. DesktopSharing<转>

    https://github.com/PHZ76/DesktopSharing/tree/e1543975576e6c4fc5c2404b2f4c9c99c0350bd3 git:https://gi ...

  9. 超实用!手把手教你如何用MSF进行后渗透测试!

    在对目标进行渗透测试的时候,通常情况下,我们首先获得的是一台web服务器的webshell或者反弹shell,如果权限比较低,则需要进行权限提升:后续需要对系统进行全面的分析,搞清楚系统的用途:如果目 ...

  10. sails 相关软件下载地址及命令

    vscode1.40   https://vscode.cdn.azure.cn/stable/f359dd69833dd8800b54d458f6d37ab7c78df520/VSCodeUserS ...