首页 > 解决方案 > 为什么逻辑运算组合的结果值分别与它们中的每一个相矛盾?

问题描述

我的 JS 代码用于根据值显示模式窗口。

当我分别输出 , 的值时,event.pageY < 30它们都等于但等于。为什么会这样?isMovingUp(event)event.movementY < 0trueevent.pageY < 30 && event.movementY < 0 && isMovingUp(event)false

const showModalBeforeOut = (event) => {
  const headerBlock = document.querySelector("#header");

  console.log(`${event.pageY < 30}`);
  console.log(`${isMovingUp(event)}`);
  console.log(`${event.movementY < 0}`);

  if (event.pageY < 30 && event.movementY < 0 && isMovingUp(event)) {

    console.log(`logical value of expression is: ${event.pageY < 30 && isMovingUp(event) && event.movementY < 0}`);

    let modalTextContent = "Don't leave the site!";
    let isCookieExists = checkCookie('max-age')
    if (!isCookieExists) {

    // if there is no cookie here at first display modal window and after initialize cookie with value `max-age`
      displayPopup(modalTextContent);
      document.cookie = 'max-age=15'

      if (document.body.contains(document.querySelector('.question-p'))) {
        const targetElement = document.querySelector('.question-p')
        targetElement.textContent = "Leaving already?"
      }
    }
  }
}

标签: javascriptlogiclogical-operators

解决方案


推荐阅读