1、逻辑与(&&)
(1)对于布尔值,只有都为true才返回true;

(2)对于不是布尔值的情况则:
  如果第一个操作数是对象,则返回第二个数
               eg:var str = new Array();
               console.log(str&&8);//返回值为8
   如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象。
  如果第两个操作数都是对象,则返回第二个数操作数。
   如果有一个操作数是null,则返回null。
                eg: console.log(8&&null);//返回结果为null
   如果有一个操作数是NaN,则返回第NaN。
   如果第一个操作数是undefined,则返回undefined。
2.逻辑或(||)
(1)对于布尔值,逻辑或是非常简单的,只要有一个true,就返回true;

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

  • 如果第一个操作数是对象,则返第一个操作数
  • 如果第一个操作数的求值结果为false,则返回第二个操作数
  • 如果两个操作数都是对象,则返回第一个操作数
  • 如果两个操作数是null,则返回null
  • 如果两个操作数是NaN,则返回NaN
  • 如果两个操作数是undefined,则返回undefined

3.逻辑非(!)

  • 如果一个操作数是一个对象,返回false;
  • 如果一个操作数是一个空字符串,返回false;
  • 如果一个操作数是一个非空字符串,返回false
  • 如果一个操作数是一个数值0,返回true;
  • 如果一个操作数是任意的非零字符,返回false;
  • 如果一个操作数是null,返回true;
  • 如果一个操作数是NaN,返回true;
  • 如果一个操作数是undefined,返回true;

注:逻辑与,逻辑非都是从左向右判断,谁的第一个逻辑判断为true就显示谁,只不过逻辑非必须两个都为true,而且谁是第一个false就显示谁。

if(obj!=null && obj.length >0){//防止空指针异常alert
}

Java中要判断字符串是否为空或者对象是否为null
但js中会自行判断 可以简化书写

if(obj){//防止空指针异常alert(111)
}
while(true){//死循环,当括号内不为true时,类型转换,非空、数字非0则为true,字符串也为true
alert(111)
}

逻辑运算符
逻辑运算符用于判定变量或值之间的逻辑。我们给定 x = 6 且 y = 3,下表解释了逻辑运算符:

运算符 描述 例子
&& (x < 10 && y > 1) 为 true
|| (x == 5
! !(x == y) 为 true

关于JS的逻辑运算符 与 或|| 非!相关推荐

  1. 前端图片压缩上传(纯js的质量压缩,非长宽压缩)

    前端图片压缩上传(纯js的质量压缩,非长宽压缩) 此demo为大于1M对图片进行压缩上传 若小于1M则原图上传,可以根据自己实际需求更改. demo源码如下: <!DOCTYPE html> ...

  2. 逻辑运算符与或非(基础学习)

    逻辑运算符与或非 "!"(逻辑非)."&&"(逻辑与)."||"(逻辑或)是三种逻辑运算符. 逻辑运算一般用于连接多个关系, ...

  3. 【JS】逻辑运算符 非! 与 或||(处理对象时注意)

    转自:https://www.cnblogs.com/linxiong945/p/4135554.html JS中的逻辑运算符在处理布尔值的判断时,和其他语言没有什么不同,不过在处理对象时,就需要好好 ...

  4. 创业笔记-Node.js入门之阻塞与非阻塞

    阻塞与非阻塞 正如此前所提到的,当在请求处理程序中包括非阻塞操作时就会出问题.但是,在说这之前,我们先来看看什么是阻塞操作. 我不想去解释"阻塞"和"非阻塞"的 ...

  5. 【cocos2d-x从c++到js】22:使用非侵入方式扩展UI系统接口的举例

    如何较好的运用脚本语言,使用他的动态性是关键.使用动态性来扩展代码,可以保证非侵入方式.这种方式,把原先的引擎代码和当前自己的二次开发代码隔离开了,便于后续的升级维护.而且,又不像继承那么重量级. 下 ...

  6. 一分钟搞懂逻辑运算符(并且) , |(或者) , !(非) , ^(异或) , (短路与) , ||(短路或)之间的关系

    逻辑运算符 逻辑功能 示例 &(并且) 有false则false 1 |(或者) 有true则true. 2 !(非) 非false则true,非true则false. 3 ^(异或) 相同为 ...

  7. js/jq基础(日常整理记录)-2-一个简单的js方法实现集合的非引用拷贝

    一.一个简单的js方法实现集合拷贝 做web项目的时候,少不了和js中的数组,集合等对象接触,那么你肯定会发现,在js中存在一个怪异的现象就是数组和集合的拷贝都是地址复制,并不是简单的数据的拷贝. 举 ...

  8. JS 仿淘宝幻灯片 非完整版 小案例

    仿淘宝幻灯片,基础版,后期效果是要做到每次点击小圆点,切换都无缝 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 2 ...

  9. js验证不完全收录(非空,中英逗号,字数限制,特殊字符,密码,用户名,手机号)

    例:  页面文本域标签  <textarea name="contents" id="fffff" ></textarea> var c ...

最新文章

  1. linux防火墙cc,Linux防火墙后面的Alljoyn服务(iptables)
  2. Socket IO与NIO(二)
  3. 深入浅出Node.js游戏服务器开发--分布式聊天服务器搭建
  4. android 音乐播放器中播放模式的设计
  5. ssh 与 telnet 有何不同?_Secure Shell(SSH)介绍
  6. 禁用一个计算机用户,系统小技巧:Windows 10账户删除 禁用与启用
  7. listen函数的第二个参数_JavaScript数组构造from函数
  8. 图像处理——傅里叶变换
  9. Docker中未指定挂载点容器间volume卷的数据共享
  10. Bomb(hdu 3555)
  11. 保存验证码的方法_selenium自动化测试:6.验证码处理
  12. Spring 配置文件
  13. c语言中dot作用,编程小组功能介绍及使用说明
  14. 【干货】Vray渲染器的使用方法
  15. 服务器虚拟化的重要性,服务器虚拟化:虚拟机迁移的重要性
  16. 池化层MaxPool函数详解及反向传播的公式推导
  17. 公益/广告-bloggerads广告是为了钱?[非推广文章哈]
  18. 实现点击图标使界面回到顶部
  19. 亚马逊云AWS MQTTS 证书使用说明
  20. python 制作数据图表_python制作各种数据图表

热门文章

  1. 深度学习论文--Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
  2. 小型步进电机驱动芯片的应用和介绍如HR8833
  3. mysql replace用法
  4. Ubuntu下的Kitematic安装启动出现无法使用的问题
  5. 华为手机恢复出厂设置出现com.android.phone,华为手机恢复出厂设置后怎么还原【图文】...
  6. 关于合并apk和odex的实践
  7. 困扰许久的Kafka Rebalance问题
  8. 网络爬虫(动态网页爬取关于混合动力汽车的论文数据)
  9. VMware、CentOS、XShell、Xftp的安装
  10. chainer-图像分类-MobilenetV1【附源码】