js之运算符(逻辑运算符)
逻辑运算符通常用于布尔型(逻辑)值。这种情况下,它们返回一个布尔值。它经常和关系运算符一起配合使用。“&&” 、“!”和“ ||” 运算符会返回一个指定操作数的值,因此,这些运算符也用于非布尔值。这时,它们也就会返回一个非布尔型值。
逻辑与(&&)
逻辑与是由两个和号(&)表示,有两个操作位数,只有当左右两边都时成立,整个条件才成立.否则就是不成立。它属于一个短路操作,如果第一个条件就可决定结果,那就不用操作第二个条件了。它可以和多个运算符连用,返回第一个布尔值为false的表达式。可以取代if结构,也可以用于回调函数中。
<script>
var i = 1;
var n = 1;
var result1 = (true && i++);//第一个条件成立,操作第二个条件
var resutl2 = (false && ++n);//第一个条件不成立,直接退出
console.log(i,n); //2 1
</script>
<script>
//左侧为真,返回右侧的值,左侧为假,返回左侧的值 false,undefined,null,0,NaN,
'' 这些为假其余为真;可以多个连用,返回第一个布尔值为false的表达式的值
console.log('string' && ''); //''
console.log('string' && 1 + 2);//3
console.log('' && undefined);//''
console.log(false && null);//false
console.log(0 && 'string');//0
console.log(NaN && false);//NaN
console.log(true && 'string' && undefined && '' && 2); //undefined
</script>
<script>
if (a == b) {
dosomething();
}//等价于
a == b && dosomething(); function fn(a){
if(a){
a();
}
}//等价于
function fn(a){
a && a();
}
</script>
逻辑或(||)
有两个操作数,只有两个都条件都不成立时,结果才是不成立,否则都是成立的。它也是一种短路操作。也可多个连用,返回第一个布尔值为true的表达式的值,常用于为变量设置默认值。左侧为真,返回左侧的值,左侧为假,返回右侧的值。
<script>
//左侧为真,返回左侧的值,左侧为假,返回右侧的值
console.log('string' || '');//string
console.log('string' || 'number');//string
console.log(undefined || 2);//2
console.log(NaN || false);//false console.log('' || undefined || false || 3 || string); //3 var n = 1;
var m = 1;
var result = (true || ++n);//true为真,不执行后面的操作
var result = (false || --m);//false为假,执行行后面操作
console.log( n,m); //1 0 //如果没有向参数a中传入值,则将参数设置为空对象
function fn(a){
a=a || {};
}
</script>
逻辑非(!)
逻辑非是一个叹号,无论这个值是什么数据类型,使用这个操作符后都会返回一个布尔值。逻辑非操作符会先将它的操作数转换成一个布尔值然后再对其求反。如果同时用两个逻辑非的话那就相当于调用Boolean()方法,负负得正。一般用于控制循环。
<script>
console.log(!!NaN); //false
console.log(!![]); //true
console.log(
!! new Boolean(false)); //true
</script>
js之运算符(逻辑运算符)的更多相关文章
- JS 比较运算符 逻辑运算符
逻辑运算符 三元运算符 摘自:http://www.w3school.com.cn/js/js_comparisons.asp
- js基础——运算符
爱创课堂前端培训--js基础 运算符一.运算符 运算符(Operators,也翻译为操作符),是发起运算的最简单形式.分类:(运算符的分类仁者见智,本课程进行一下分类.)数学运算符(Arithmeti ...
- Js的运算符
JS的运算符 1.运算符的分类: a) 算数运算符 b) 字符串运算符 c) 赋值运算符 d) 比较运算符 e) 逻辑运算符 f) 位运算符 g) 其他运算符 2.算数运算符 + 加法运算符 - 减法 ...
- js 的概念和声明-js 的变量-js 的运算符和逻辑结构-js 的数组
js 的概念和声明Js的概念和声明:问题:在网页的发展历程中,发现网页不能对用户的数据进行自动校验,和提供一些特效造成用户体验极差解决:使用JavaScript作用:可以让网页和用户之间进行直接简单的 ...
- JS中的逻辑运算符&&、||
原文:JS中的逻辑运算符&&.|| 1.JS中的||符号: 运算方法: 只要"||"前面为false,不管"||"后面是true还是false, ...
- js中的逻辑运算符详解(||、&&、!)
视频地址:https://www.bilibili.com/video/BV1Y7411K7zz?p=1 一直以来都没弄清楚js中的逻辑运算符是怎么回事 , 一直都以为他们的用法和java一样 , 今 ...
- JavaSE复习日记 : Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符
// Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符 /* * 一 Java操作符 * * Java操作符都有哪些? * +, -, *, /, %, ++, -- * ...
- js之运算符其它运算符(三元运算符,逗号运算符,void运算符,typeof,delete运算符)
Javascript支持很多其它的运算符,具体如下: 一.条件运算符(?:) 条件运算符是Javascript中唯一的三个操作数的三元运算符,有时会直接称做是“三元运算符”. 基本格式:conditi ...
- Golang的运算符-逻辑运算符
Golang的运算符-逻辑运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.逻辑运算符概述 !: 非运算符,表示NOT(有种取反的意思),如"!ture" ...
- JS中的逻辑运算符&&、||,位运算符|,&
1.JS中的||符号: 运算方法: 只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值. 只要“||”前面为true,不管“||”后面是true还是fals ...
随机推荐
- EBS 创建会计科目 小结
1 创建会计科目 方式(以AP发票为例) 1)在发票工作台对单张发票进行创建科目: 参考网址: https://www.cnblogs.com/bruce_zhao/p/3809493.html 备注 ...
- oracle表结构表数据导入导出
--------------------------------------imp/exp------------------------------------------------------- ...
- 用Java实现一个二叉树
介绍 使用Java实现一个int值类型的排序二叉树 二叉树 二叉树是一个递归的数据结构,每个节点最多有两个子节点. 通常二叉树是二分查找树,每个节点它的值大于或者等于在它左子树节点上的值,小于或者等于 ...
- [Java]用于将链表变成字符串并在元素之间插入分隔符的有用函数“String.join”
将链表变成字符串并在元素之间插入分隔符,这种动作最常见于组合sql文“select a,b,c from tb”这种场景scenario,其中a,b,c你是存贮在链表中的, 如果要加逗号要么在循环中识 ...
- SSD 页、块、垃圾回收
基本操作: 读出.写入.擦除: 因为NAND闪存单元的组织结构限制,单独读写一个闪存单元是不可能的.存储单元被组织起来并有着十分特别的属性.要知道这些属性对于为固态硬盘优化数据结构的过程和理解其行为来 ...
- 深入理解AlexNet网络
原文地址:https://blog.csdn.net/luoluonuoyasuolong/article/details/81750190 AlexNet论文:<ImageNet Classi ...
- Setup Python 开发环境和IPython的基本使用
目录 目录 前言 软件准备 Python交互式Shell 为Python Shell添加补全功能 IPython-400 IPython功能和特性基础 可直接使用部分的Bash指令 别名alias语法 ...
- linux 基础 ls cd 目录含义
- 麦香牛肉(dp 、数论)
麦香牛肉 时间限制: 1 Sec 内存限制: 128 MB 题目描述 农夫约翰的奶牛几乎要武装暴动,因为他们听说麦当劳要推出新产品麦香牛肉.奶牛们要尽力阻止这种产品的上市.他们研究了一种“劣等包装” ...
- 2019.06.05 ABAP EXCEL 操作类代码 OLE方式(模板下载,excel上传,内表下载)
一般使用标准的excel导入方法9999行,修改了标准的excel导入FM 整合出类:excel的 模板下载,excel上传,ALV内表下载功能. 在项目一开始可以SE24创建一个类来供整体开发使用, ...