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中的逻辑运算符&&、||的更多相关文章
- js中的逻辑运算符详解(||、&&、!)
视频地址:https://www.bilibili.com/video/BV1Y7411K7zz?p=1 一直以来都没弄清楚js中的逻辑运算符是怎么回事 , 一直都以为他们的用法和java一样 , 今 ...
- JS中的逻辑运算符&&、||,位运算符|,&
1.JS中的||符号: 运算方法: 只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值. 只要“||”前面为true,不管“||”后面是true还是fals ...
- JavaScript基础&实战(2)js中的强制类型转换、运算符、关系运算符、逻辑运算符、条件运算符
文章目录 1.强制类型转换Number 1.1 代码 1.2 测试结果 2.进制表示 2.1 代码 2.2 测试结果 3.强制类型转换为Boolea 3.1 代码 3.2 测试结果 4.运算符 4.1 ...
- js中的逻辑与(&&)和逻辑或(||)
之前有一个同事去面试,面试过程中碰到这样一个问题: 在js中写出如下的答案 : var a = 2; var b = 3; var andflag = a && b ; var orf ...
- js中的运算符和条件语句
js中的运算符大体上可以分为4类:1算术运算符.2一元操作符.3比较运算符.4逻辑运算符. 算术运算符一般指的是加减乘除求余这五种操作符:+,-,*,/,%.通过算术运算符可以对js中的变量进行操作. ...
- js中三目运算符和&& || 符的个人浅见
这两天看到别人写的代码,感觉很牛逼,如下,大神请忽视 $(".lgn").on("click", function() { var a = {}; a.logi ...
- Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)
一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
- 关于JS中涉及的常用类型转换及运算符表达式
JS中的常用类型转换(一般用强制转换):1.强制转为整数:parseInt:写法:x = parseInt(x); 2.强制转换位小为:parseFloat:写法:x = parseFloat(x); ...
随机推荐
- python 判断元素是否在一个列表中
import random val= data=[,,,,] : find=False val=int(input('请输入查找键值(1-9),输入-1离开:')) for i in data: if ...
- hotspot的内存
java memory主要分heap memory 和 non-heap memory,其计算公式如下: Max memory = [-Xmx] + [-XX:MaxPermSize] + numbe ...
- Spring Boot Controller单元测试
一.创建Controller 一个方法是用传统IO来下载文件,一个是NIO下载文件 @Controller public class FileController { private Logger l ...
- JPA的一对多,多对多用法
一.@OneToOne关系映射 JPA使用@OneToOne来标注一对一的关系. 实体 People :用户. 实体 Address:家庭住址. People 和 Address 是一对一的关系. 这 ...
- 常见 SQL 语句的加锁分析
参考: https://www.aneasystone.com/archives/2017/12/solving-dead-locks-three.html
- deformable conv
在原feature map上经过卷积生成与原feature map一样w.h大小的feature map,但是channel变为2倍,即2N.2N代表的是每个像素x.y两个方向的偏移量. 这个偏移量生 ...
- iobit-unlocker --- 类似 Unlocker 工具,强制删除文件或文件夹
win10 使用 Unlocker 1.9.2 常有问题,以前在win7上使用完全ok的 更换成:iobit-unlocker ,win10体验还可以,类似Unlocker 下载地址: https:/ ...
- Java学习-057-Jsoup爬虫获取中国所有的三级行政区划数据(二),并生成数据库 SQL 脚本插入语句
多不废话,直接上马,小主您稳着... package com.fanfengping.zeus.uitl; import com.alibaba.fastjson.JSONObject; import ...
- WPF,回车即是tab
正在做的WPF项目,客户需要在文本框里输入后按回车即跳到下一个框框,和tab一样的 上网搜索了下解决方案:如下: 在文本框外围 的grid加上KeyDown事件,代码里写上: /// <summ ...
- Android设置顶部banner背景透明度时影响全局背景问题
项目中用到滑动界面使顶部title栏背景渐隐渐现的效果,即初始不滑动时的透明度为0,用了bannerle.getBackground().setAlpha(0); 但使用这个方法设置透明度是管用,返回 ...