前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JavaScript操作符之逻辑操作符

JavaScript操作符之逻辑操作符

作者头像
青年码农
发布2021-03-23 15:08:48
发布2021-03-23 15:08:48
66700
代码可运行
举报
文章被收录于专栏:青年码农青年码农
运行总次数:0
代码可运行

对于编程语言来说,逻辑操作符跟相等操作符几乎同样重要。

逻辑操作符一共三个,!(逻辑非)、&&(逻辑与)、||(逻辑或)。

1 !(逻辑非)

这个操作符始终返回布尔值,无论什么数据类型,逻辑非操作符始终先将操作数据转换为布尔值,之后在进行取反。

代码语言:javascript
代码运行次数:0
运行
复制
console.log(!false); // true
console.log(!0);     // true 

遵循:

  • 如果操作数是对象,则返回 false。
  • 如果操作数是空字符串,则返回 true。
  • 如果操作数是非空字符串,则返回 false。
  • 如果操作数是数值 0,则返回 true。
  • 如果操作数是非 0 数值(包括 Infinity),则返回 false。
  • 如果操作数是 null,则返回 true。
  • 如果操作数是 NaN,则返回 true。
  • 如果操作数是 undefined,则返回 true。

2 &&(逻辑与)

逻辑与操作符可用于任何类型的操作数,不限于布尔值。规则同真则真,有假则假

代码语言:javascript
代码运行次数:0
运行
复制
let result = true && false; 

针对都是布尔值,遵循两个都是true,则为true,有一个为false,则为false,如果两个都是false,则为false。

如果不止布尔值,则遵循:

  • 如果第一个操作数是对象,则返回第二个操作数。
  • 如果第二个操作数是对象,则只有第一个操作数求值为 true 才会返回该对象。
  • 如果两个操作数都是对象,则返回第二个操作数。
  • 如果有一个操作数是 null,则返回 null。
  • 如果有一个操作数是 NaN,则返回 NaN。
  • 如果有一个操作数是 undefined,则返回 undefined。
代码语言:javascript
代码运行次数:0
运行
复制
console.log({} && null);             //null
console.log(null && {});             //null
console.log({} && undefined)         //undefined
console.log(undefined && {});        //undefined
console.log({} && NaN);              //NaN
console.log(NaN && {});              //NaN

3 ||(逻辑或)

与逻辑与一样,可用于任何类型的操作数,不限于布尔值。同假则假,有真则真

代码语言:javascript
代码运行次数:0
运行
复制
let result = true || false; 

针对都是布尔值,遵循两个都是true,则为true,有一个为true,则为ture,如果两个都是false,则为false。

如果不止布尔值,则遵循:

  • 如果第一个操作数是对象,则返回第一个操作数。
  • 如果第一个操作数求值为 false,则返回第二个操作数。
  • 如果两个操作数都是对象,则返回第一个操作数。
  • 如果两个操作数都是 null,则返回 null。
  • 如果两个操作数都是 NaN,则返回 NaN。
  • 如果两个操作数都是 undefined,则返回 undefined。
代码语言:javascript
代码运行次数:0
运行
复制
console.log({} || null);             //{}
console.log(null || {});             //{}
console.log({} || undefined)         //{}
console.log(undefined || {});        //{}
console.log({} || NaN);              //{}
console.log(NaN || {});              //{}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 青年码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档