当前位置: 首页 > news >正文

php 與或非,js逻辑与,或,非

1、逻辑非(!)

如果一个操作数是一个对象,返回true;

如果一个操作数是一个空字符串,返回false;

如果一个操作数是一个非空字符串,返回false;

如果一个操作数是一个数值0,返回false;

如果一个操作数是任意的非零字符,返回true;

如果一个操作数是null,返回false;

如果一个操作数是NaN,返回false;

如果一个操作数是undefined,返回true;

2、逻辑与(&&)

(1)对于布尔值,逻辑与是非常简单的,只要有一个false,就返回false;

(2)对于不是布尔值的情况则:

如果第一个操作数是对象,则返回第二个数

如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象;

如果第两个操作数都是对象,则返回第二个数操作数

如果有一个操作数是null,则返回null

如果有一个操作数是NaN,则返回第NaN

如果第一个操作数是undefined,则返回unfined

上面确实难记,举例子来论证下会更方便记住

var obj={}; var a=(obj

&& null); alert(a) //null

var obj={}; var a=(null

&& obj); alert(a) //null

var obj={}; var a=(obj

&& undefined); alert(a)

//undefined

var obj={}; var a=(undefined

&& obj); alert(a) //undefined

var

obj={}; var a=(obj

&& NaN); alert(a) //NaN

var obj={}; var a=(NaN

&& obj );

alert(a) //NaN

var obj={};var obj2={} ; var a=(obj

&& obj2); alert(a==obj2) //true

对于逻辑与的短路问题:

举例1

var found=true;var result=(found

&&

someUdefinedVariable);alert(result);//显示someUdefinedVariable

//例子中的found为true,所以会对someUdefinedVariable继续求值,但是该变量未定义,所以会提示错误

举例2

var found=false;var result=(found

&&

someUdefinedVariable);alert(result);//显示false

//例子中的found为false,所以第一个操作数就已经能够决定结果,就不会在对第二个操作数求值

ps:对于逻辑与,如果第一个操作数十false,无论第二个操作数是什么,结果都不可能在世true

3、逻辑或(||)

(1)对于布尔值,逻辑或是非常简单的,只要有一个true,就返回true;

(2)对于不是布尔值的情况则:

如果第一个操作数是对象,则返第一个操作数

如果第一个操作数的求值结果为false,则返回第二个操作数

如果两个操作数都是对象,则返回第一个操作数

如果两个操作数是null,则返回null

如果两个操作数是NaN,则返回NaN

如果两个操作数是undefined,则返回undefined

例子1

var found=true;

var result=(found ||

someUdefinedVariable);

alert(result);//弹出true

//对于逻辑与,当一个为true的时候,就不会在对第二个操作数进行求职了

相关文章:

  • java邮件代码,java发送邮件(示例代码)
  • linux下mysql乱码,Linux下mysql中文乱码解决方案
  • matlab里怎么计算期望,§7.4.2 利用MATLAB计算随机变量的期望和方差.pdf
  • php静态页缓存,php处理静态页面:页面设置缓存时间图文详解
  • java 数据的储存,java数据储存方式详解
  • helpers.php,helpers.php
  • python下载package失败,pip安装packag失败
  • php ieee754,在 Go 中探索 IEEE-754 标准
  • oracle+数据结构+字典,ORACLE 数据字典
  • liunx php libiconv-1.14 扩展库地址,编译安装php之安装libiconv-1.14.tar.gz出错解决方法...
  • Oracle标量子查询执行计划,性能为王:SQL标量子查询的优化案例分析
  • oracle insert和update,INSERTUPDATE和MERGE (转)
  • 有关oracle的论文,Oracle数据库研究论文有关Oracle数据库的论文
  • linux rocketmq 命令,Linux下安装RocketMQ(单Master)
  • linux 查看 文件夹代销,速达常见问题集
  • JavaScript-如何实现克隆(clone)函数
  • JavaScript 基础知识 - 入门篇(一)
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • spring boot下thymeleaf全局静态变量配置
  • SpringCloud集成分布式事务LCN (一)
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 成为一名优秀的Developer的书单
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 记录一下第一次使用npm
  • 前端面试之闭包
  • 前端相关框架总和
  • 容器服务kubernetes弹性伸缩高级用法
  • 学习笔记:对象,原型和继承(1)
  • 源码安装memcached和php memcache扩展
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​io --- 处理流的核心工具​
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​渐进式Web应用PWA的未来
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #565. 查找之大编号
  • #window11设置系统变量#
  • $.proxy和$.extend
  • $jQuery 重写Alert样式方法
  • $nextTick的使用场景介绍
  • (27)4.8 习题课
  • (多级缓存)缓存同步
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转)ABI是什么
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net mvc部分视图
  • .net 获取url的方法
  • .NET6 命令行启动及发布单个Exe文件
  • .NET业务框架的构建