简写if语句始终返回'false'而不是赋值

时间:2016-10-01 14:56:36

标签: javascript if-statement arguments conditional-operator

我试图在Javascript中使用简写if语句来查明我的一个参数是否为负数,如果是,我想将其更改为特定值。这是我的代码:

var findDigit = function(num, nth){
nth = nth < 0 ? nth === -1: nth;
}

我想问的是,如果nth 小于 0,则将nth更改为-1,如果小于0,则不执行任何操作,或保留它的方式。当我登录第n个参数时,我得到'假'。

我也曾遇到过这个问题。所以我想我要问的是,你怎么写一个没有'else'部分的速记if语句?如果if语句是 true ,我有一个代码块我希望它运行,但如果它是假的我不希望它做任何事情。谢谢!

3 个答案:

答案 0 :(得分:1)

除了放置值之外,您不必做任何其他事情:

nth = nth < 0 ? -1: nth;

答案 1 :(得分:1)

由于你的if语句:nth < 0执行以下代码:nth === -1如果nth正好为-1,则检查(包括类型)。只需省略此部分并打印

即可
var findDigit = function(num, nth){
  nth = nth < 0 ? -1: nth;
}

答案 2 :(得分:1)

我对javascript了解不多,但我觉得您使用的是比较运算符 === ,这就是为什么它返回boolean(false)值。

尝试使用=来分配值,即: nth = nth&lt; 0? nth = -1:nth;

希望它有所帮助。