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))
}
可能我不懂三元运算但是
如果我是对的
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))
}