JavaScript逻辑运算符一个有趣的现象

 今天看JavaScript内核 系列的时候看到一个程序想到的一些东东。

 

 一般的,||运算符都是用来判断两边的结果,最后返回的是true或者false,而在JavaScript中却有一个比较好玩的现象。

 

alert(1||2); 
alert(1>2||2>3);     

 

   如果不去运行程序,我的想法就是:

    true

    false

 

    而实际结果呢?

    1

    false

 

        看到这个结果的时候的确是感觉比较奇怪的,也就是说如果||两边没有任何的比较,那首先返回的结果就是左边的那个。而&&与之相反

      //定义一个Address类

			function Address(street,xno){
				this.street = street || 'Huang Quan Road';
				this.xno = xno || 135;
				this.toString = function(){
					return "street : " + this.street + ", No : " + this.xno;

				}
			}
			
			//定义另一个"类",Person
			function Person (name, age, addr) {
				this.name = name || 'unknown';
				this.age = age;
				this.addr = addr || new Address(null, null);
				this.getName = function () {return this.name;}
				this.getAge = function(){return this.age;}
				this.getAddr = function(){return this.addr.toString();}
			}
			
			alert(1||2);                     // 1
			alert(1>2||2>3);                 //false
			alert(1|2);                      //3
			alert(1>2|2>3);                  //0
			
			alert(1&&2);                     //2
			alert(1&2);                      //0
			alert(1>0&&2>1);                 //true
			alert(1>0&2>1);                  //1
			
			//通过new操作符来创建两个对象,注意,这两个对象是相互独立的实体
			var jack = new Person('jack', 26, new Address('Qing Hai Road', 123));
			var abruzzi = new Person('abruzzi', 26);
			
			var per=new Person();
			alert(per.name);                //unknown
			alert(per.age);                 //undefined
			alert(per.addr);                //street : Huang Quan Road, No : 135
			
			var add=new Address('WuXi Gaolang',1600);
			alert(add);                     //street : WuXi Gaolang, No : 1600
			
			alert(jack.getName());          //jack
			alert(jack.getAge());           //26
			alert(jack.getAddr());          //street : Qing Hai Road, No : 123
			
			alert(abruzzi.getName());       //abruzzi
			alert(abruzzi.getAge());        //26
			alert(abruzzi.getAddr());       //street : Huang Quan Road, No : 135

 

 

 

 

 

   个人还不太理解的就是(位移)

 

alert(1|2);                      //3
alert(1>2|2>3);              //0



alert(1>0&&2>1);            //true
alert(1>0&2>1);              //1
别再只看成交量了!用通达信这个VOL监测公式,一眼识别主力吸筹与出货信号 本文详细介绍了通达信VOL监测公式的实战应用,通过彩色量柱和换手率分层技术,帮助投资者识别主力吸筹与出货信号。该公式结合动态量能标准化和多周期均线组合,提供可视化主力行为图谱,提升交易决策的准确性。 阅读详情

相关推荐

YOLOv5添加注意力机制的具体步骤

本文主要介绍了 本文在此篇博客的基础上向YOLOv5-5.0版 本文主要包括以下内容一、CBAM注意力机制添加(1)修改yolov5s主干网络(2)在common.py中添加可调用的CBAM模块(3)向yolo.py文件添加CBAMC3判断语句二、SE注意力机制添加 本文以yolov5s网络为例 一、CBAM注意力机制添加 注意力机制可以添加在backbone,Neck,Head等部分,接下来本文以backbone主干网络为例 (1)修改yolov5s主干网络 1.在yolov5-5.0工程文件夹下,找到m

thy0000的博客 2万+

Javascript逻辑运算符

关键点逻辑运算符可以处理非布尔值(如数字、字符串),JavaScript 会先将它们隐式转换为布尔值(真值:非零数字、非空字符串等为truetruetrue;000nullundefined等为falsefalsefalse短路求值特性使这些运算符高效,常用于默认值设置(如布尔表达式如A∧BA \land BA∧B和A∨BA \lor BA∨B在编程中直接映射到&&和||。实际应用:在条件语句(如if。

2501_93572910的博客 1716

美团外卖mtgsig 1.2逆向工程:从补环境到签名生成全解析

本文深入解析了美团外卖mtgsig 1.2签名算法的逆向工程全流程。从环境检测原理与补环境实战入手,详细拆解了签名JSON中每个关键字段的生成逻辑,并重点剖析了核心签名a2的生成步骤,涉及设备指纹、MD5、AES加密等关键技术。最后提供了构建签名生成器的实践思路与常见坑点,为理解复杂风控体系提供了完整的技术视角。

weixin_29324401的博客 1764

【JavaScript】JavaScript 运算符 ④ ( 逻辑运算符 | 逻辑与运算符 && | 逻辑或运算符 || | 逻辑非运算符 ! )

一、JavaScript 逻辑运算符 1、逻辑运算符 概念 2、逻辑与运算符 && 3、逻辑或运算符 || 4、逻辑非运算符 ! 5、完整代码示例

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2278

LabVIEW新手必看:5个工业自动化实战项目从零搭建(附完整代码)

本文为LabVIEW新手提供了5个从零开始的工业自动化实战项目指南,涵盖数据采集、状态机控制、PID闭环、振动监测及多站协同监控。通过详细的架构解析和关键代码片段,帮助读者快速掌握LabVIEW图形化编程的核心逻辑与工程化思维,并附完整代码实现。

agile9scrum的博客 1073

python编程实现制作网络流量监控动画

c,实时显示网络带宽使用情况,用柱状图或折线图表示不同时间段的流量变化。通过 Python编程实现图形库(如 Pygame、Tkinter、Matplotlib 等)来实现计算机网络基础概念的可视化动画。global bars # 声明 bars 为全局变量。# 获取当前网络流量。# 创建图形和坐标轴。

qq_42788199的博客 720

JS逻辑运算符的与,或,非

JS-逻辑运算符的与,或,非 1.逻辑非(!) 定义:所谓非,就是取反,非真即假,非假即真。 非运算符不仅仅只能用于布尔值,其他数据类型也是可以的,如下: 1.如果操作数是一个对象,返回false 2.如果操作数是一个空字符串,返回true 3.如果操作数是一个非空字符串,返回false 4.如果操作数是数值0,返回true 5.如果操作数是任意非0数值(包括Infinity), 返回false 6.如果操作数是null,返回true 7.如果操作数是NaN,返回true 8.如果操作数是undefined

zzh1251994430的博客 7222

IEEE Transactions on Industrial Informatics(TII)投稿全流程解析:从准备到成功提交

本文详细解析了向IEEE Transactions on Industrial Informatics(TII)投稿的全流程,涵盖从投稿前的格式准备、内容结构优化到在线提交系统实操等关键环节。重点强调了遵守TII严格的格式规范、双盲评审要求以及如何构建有说服力的学术叙述,旨在帮助研究者提升稿件质量,顺利通过评审。

weixin_28396629的博客 1872

JavaScript逻辑运算符

JavaScript 中的逻辑运算符可用来确定变量或者是值之间的逻辑关系。通常用于布尔型值,会返回一个布尔值true 或 false。而 &&、|| 运算符能够使用非布尔值的操作数,此时会返回一个非布尔型值。 布尔值 在 JavaScript 中提供了一种布尔数据类型,只接受值 true 或 false。我们可以通过 Boolean() 函数来确定表达式(或变量)的值为 true 还是 false。 示例: 将下面代码在浏览器中执行,将弹出一个显示 true 的弹出层: alert(Bool

ivenqin的博客 3606

vuecli3 实现 移动端和pc端 界面切换(两套代码)

适合场景 多页面多系统应用 所有系统都在同一目录下。配置多入口多出口。每个系统之间可以链接。每个系统内依然采用Vue单页应用开发。 产品需求:一套代码 兼容pc端和移动端 , 移动端和pc端的样式布局差别很大,需要使用多界面,并判断使用手机的时候跳转移动端代码,使用pc端跳转pc端代码。 项目目录 分为两部分代码,pc 和mobile 第一步:创建一个登陆页面的文件 在项目public文件夹下创建一个login.html,其实就是将index.html复制一份,将title改一下: <!DOCTYP

你怎么也喜欢嘴巴嘟嘟 5924

matlab SAR图像的多视滤波

单视复数数据(Single Look Comple)是原始的最高分辨率数据,但是从单个像元散射的雷达回波信号的相干叠加,导致强度信息有很多噪声。SAR的多视处理是对SLC数据方位向和/或距离向做平均,得到的结果是多视后的强度数据。多视处理可以提高SAR图像的信噪比,有效抑制斑点噪声,但是会降低方位分辨率。

点云侠的博客 534

Js中的逻辑运算符

Js中的逻辑运算符 JavaScript中有三个逻辑运算符,&&与、||或、!非,虽然他们被称为逻辑运算符,但这些运算符却可以被应用于任意类型的值而不仅仅是布尔值,他们的结果也同样可以是任意类型。 描述 如果一个值可以被转换为true,那么这个值就是所谓的truthy,如果可以被转换为false,那么这个值就是所谓的falsy。会被转换为false的表达式有: null、NaN、0、空字符串、undefined。 尽管&&和||运算符能够使用非布尔值的操作数,但它们依然可以被

WindRunnerMax 1646

Sigrity Power DC Package Multi-Resistor Compact ET Model Extraction模式提取封装基板电热阻模型

DIE(定义DIE的参数):material设置为silicon(硅),Attach material(贴片的材料,设置为Die Attach),Attach thickness(贴片的材料的厚度,厚度设置为0.001mm,点击ok。Cap为覆盖材料,Material定义材料类型,thickness定义厚度,length和width定义长宽,Adhesive Material为胶的材料,Adhesive Material为胶的厚度,本例不定义,跳过即可。

weixin_54787054的博客 440

JavaScript【关系与逻辑运算符】

JS关系运算符实例及讲解,逻辑运算符实例及讲解,逻辑运算符运算顺序详解

h1008685的博客 1230

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

有趣的赋值逻辑运算符

写在前面 我们在写js逻辑的时候,不可否认的用到了很多逻辑的运算符,像||、&&这些,那么我们基本都是在三元运算符或者if判断里进行使用,那么我们其实可以在赋值的时候一样的使用,今天我们就看看怎么使用它来写一些看起来比较牛逼的代码! 规则 首先说一下他们的规则,比如我们写一个简单的赋值: let name = 0 || 2 //结果:2 let name = 0 &&amp...

红岸基地 707

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

JavaScript 比较 和 逻辑运算符

比较运算符 用于比较两个值,决定它们的相对大小或是否相等。逻辑运算符 用于处理布尔值的逻辑操作,例如与、或、非等。

qq_48763502的博客 1179

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JavaScript知识——JS怎么写、变量、逻辑运算符

JavaScript知识JS怎么写写在script标签内JS写在body的标签里面写在外部文件 JS怎么写 写在script标签内 JS写在<script>标签内,要加“;” <script> //控制浏览器弹出一个警告框 alert("hello world!!"); </script> <script> //控制浏览器弹出一个警告框 alert("hello worl

xiaotangyu7dong的博客 1822

JS中的逻辑运算符

JS中的逻辑运算符 1、JS中的||符号: 运算方法: 只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。 只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。 下面的代码是 || (逻辑或) 运算符的示例。 o1 = true || true // t || t 返回 true ...

weixin_43750811的博客 1578

JavaScript——比较和逻辑运算符

从比较过程来看,严格相等先比较两个对象的数据类型是否相等,不相等则结束比较,返回 false ,相等在数据类型不同时,尝试进行数据类型转换,例如,在字符串和数字的比较中,字符串会被转为数字再比较;对于对象类型,相等或者严格相等比较的都是对象的引用,而不是具体的值,就是说,一个对象和其他任何对象都是不相等的,即使两者属性、值都相等。当左操作数为假值时,返回左操作数。例如:a 为字符串 "d" ,b 为字符串 "b",因为字符串 "d" 大于字符串 "b",所以返回 "d" 逻辑与 "b",即字符串 "b"。

m0_73614626的博客 979

JavaScript之逻辑运算符

逻辑运算符: 取反运算符:! 对一个值进行取反运算 true -->false false -->true 逻辑与:&& 两个运算数的AND布尔运算 只有两个条件都为true时,结果才为true,否则为false 只要有一个值为false,结果就为false 逻辑非:|| 两个运算数的OR布尔运算 两个条件中只要有一个为true,结果就为true 都为fals...

qq_34550459的博客 338

JavaScript 逻辑运算符引发的一个小问题

在一次小项目中遇到的由于JavaScript逻辑运算符引发的小问题

FengGLA的博客 734

JavaScript基础-逻辑运算符

JavaScript基础-逻辑运算符

qq_51626500的博客 769

《JavaScript 比较和逻辑运算符》

JavaScript比较和逻辑运算符 比较和逻辑运算符用于测试true或者false。 比较运算符 比较运算符在逻辑语句中使用,以测定变量或值是否相等。 x=5,下面的表格解释了比较运算符: 运算符 描述 比较 返回值 实例 == 等于 x==8 false 实例 » x==5 true 实例 » ...

yexiang优快云的专栏 499

一些你可能不了解且有趣的JavaScript运算符列表

英文 |https://medium.com/better-programming/a-list-of-interesting-operators-in-javascript-22fd...

web前端开发 232

js逻辑运算符

js逻辑运算符(也叫短路运算) 与 => || 或 => && 非 => ! 1、 || 符号: 运算方法: 只要 “||” 前面为false,不管 “||” 后面是true还是false,都返回“||”后面的值; 只要 “||” 前面为true,不管 “||” 后面是true还是false,都返回“||”前面的值。 总结:真前假后 2、 && 符号: 运算方法: 只要 “&&” 前面是false,无论

祝先森的博客 4600
上一篇: Struts2+DAO+ExtJs做的一个简单登录程序
下一篇: S2SH+jQuery+JSON+Ajax注册--异步校验
yklovejava
博客等级 码龄14年 0粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值