js中的三元运算符

ternary operation in js

可能我不懂三元运算但是

如果我是对的

    test ? true : false

所以这应该给

function toto(x, y)
{ 
    return (x > 0 ? x < 7 ? true : false : false &&
                y > 0 ? y < 6 ? true : false : false)
}

仅当 0 时为真

但如果我这样做

toto(4,6)

它 returns 是的,为什么?我错过了什么?

你需要eslint格式化你的代码,这是格式化后的代码,见:

function toto(x, y) {
  return x > 0
    ? x < 7
      ? true
      : false
    : false && y > 0
      ? y < 6
        ? true
        : false
      : false
}

图片:

我觉得,这样更容易理解

就这样做吧:

function toto(x, y)
{ 
    return (x > 0 ? x < 7 ? true : false : false ) &&
                ( y > 0 ? y < 6 ? true : false : false)
}

在exp1和exp2前后加上括号 是的,它有点不可读 ^^

编辑:我也会做

return (x > 0 && x < 7) && (y > 0 && y < 6)

你不是要实现这个目标吗?检查 x 是否来自 0..7 而 y 是否来自 0..6?

function toto(x, y)
{ 
return (x > 0 && x < 7) && (y > 0 && y < 6 );
}

在这里影响它的运算符优先级

function toto(x, y)
{ 
return ((x > 0 ? x < 7 ? true : false : false) && (y > 0 ? y < 6 ? true : false : false)) 
}