首页 > Web开发 > 详细

JS中的逻辑运算符&&、||,位运算符|,&[转载]

时间:2019-10-19 16:35:36      阅读:92      评论:0      收藏:0      [点我收藏+]

本文为转载文章.转载自:https://www.cnblogs.com/yuanxinghuo/p/7881366.html.


1、JS中的||符号:


运算方法:


? ? ?只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。


? ? ?只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。


总结:真前假后


2、JS中的&&符号:


运算方法:


? ? ?只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;


? ? ?只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;


总结:假前真后


弄懂了以上说的还应该知道:


? ? ? js的6个蛋蛋:在js逻辑运算中,0、”“、null、false、undefined、NaN都会判为false,其他都为true。


举个栗子:


技术分享图片


3、位运算符:|


运算方法:


? ? ?两个位只要有一个为1,那么结果都为1。否则就为0


继续举栗子


技术分享图片


|运算符还能进行取整运算


技术分享图片


4、位运算符:&


运算方法:


? ? ? 两个数值的个位分别相与,同时为1才得1,只要一个为0就为0。


还是举栗子:


技术分享图片


?


下面来看一段在学习React中的井字棋胜负判断代码.

如果棋盘中的a === b ===c,即是为胜利.

function calculateWinner(squares) {
  const lines = [
    [0, 1, 2],
    [3, 4, 5],
    [6, 7, 8],
    [0, 3, 6],
    [1, 4, 7],
    [2, 5, 8],
    [0, 4, 8],
    [2, 4, 6],
  ];
  for (let i = 0; i < lines.length; i++) {
    const [a, b, c] = lines[i];
    if (squares[a] && squares[a] === squares[b] && squares[a] === squares[c]) { # 看这里
      return squares[a];
    }
  }
  return null;
}

看上面的for循环里的代码.其中使用了两次并集循环.

  • 如果输入的squares[a] = ‘x‘,squares[b]=‘x‘,squares[c] = ‘x‘.
  • 那么首先执行的是squares[a] === squares[b] =>结果为true,
  • 然后执行squares[a] === squares[c] =>结果为true,
  • 这个时候,if中的代码为 if (squares[a] && true && true),
  • 而如果squares[a]为false(当squares[a] 为0、”“、null、false、undefined、NaN都会被隐式转换为false).会返回&&前面的结果,最终结果就是为false.
    • 这种做法真的是太巧妙了.如果输入的squares[a] = null,squares[b]=null,squares[c] = null,那么就会在最后这一步返回false.

JS中的逻辑运算符&&、||,位运算符|,&[转载]

原文:https://www.cnblogs.com/gtscool/p/11703738.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!