Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使正数计算为真,负数计算为假_Javascript - Fatal编程技术网

Javascript 使正数计算为真,负数计算为假

Javascript 使正数计算为真,负数计算为假,javascript,Javascript,我在玩javascript,我想知道你是否能让所有的 大于-1的值计算为真,并且-1及以下的所有值计算为假 现在1==true如果你这样写的话,其他一切都等于false: var i = 0; if (i) {...} // I want this to be true i = 1; if (i) {...} // This is the only thing that is true 编辑:使用evaluate表示不进行比较,例如0>-1。 我希望JavaScript将数字强制转换为布尔值

我在玩javascript,我想知道你是否能让所有的 大于-1的值计算为真,并且-1及以下的所有值计算为假

现在
1==true
如果你这样写的话,其他一切都等于false:

var i = 0;
if (i) {...} // I want this to be true

i = 1;
if (i) {...} // This is the only thing that is true
编辑:使用evaluate表示不进行比较,例如
0>-1
。 我希望JavaScript将数字强制转换为布尔值。

你是说这个

if ( i > -1 ) {
    ....
}

不,您不能改变这一点,因为它内置于JavaScript
=
操作符在类型之间强制值的方式中


如果(
=
)其中一个操作数是布尔值(
true
false
),而另一个是数字,JavaScript引擎将尝试将布尔值转换为数字并比较结果。如果你试图把它转换成一个数字,这就是为什么
1==true

我真的不认为这是对所问问题的回答。OP希望0为false,在你的解决方案中,0为true。@putvande OP说“所有大于-1的值都计算为true”@kjelelook:你不能,这是内置于语言规则中的。JavaScript没有运算符重载,您不能更改
true
上抽象
ToNumber
操作的结果。这有什么意义?
i>-1
真的那么难写吗?不要忘记可以将表达式的结果存储在变量中。您也可以编写自己的自定义布尔转换函数,这将产生所需的结果。@plalx没有什么意义,我只是在玩玩。