首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript真实数字

javascript真实数字
EN

Stack Overflow用户
提问于 2018-09-14 03:50:01
回答 3查看 621关注 0票数 2

基于这些规则:

Falsy:

  • false
  • 0 (零)空string)
  • null
  • undefinded
  • NaN‘’or "“(
  • (例如1/0的结果)

真理: Everything

我找不到正确的解释,为什么在下面的测试中,只有数字1评估为"true“

代码语言:javascript
复制
0 == true ("false")
1 == true ("true")
2 == true ("false")
othernumber == true ("false")
EN

回答 3

Stack Overflow用户

发布于 2018-09-14 03:58:23

使用==与使用if(something)不同,此测试将给出您预期的结果:

代码语言:javascript
复制
function truthyFalsyTest()
{
    if(0) 
    {
       console.log("true");
    }
    else
    {
        console.log("false");
    }

    if(1) 
    {
       console.log("true");
    }
    else
    {
        console.log("false");
    }

    if(2) 
    {
       console.log("true");
    }
    else
    {
        console.log("false");
    }

    if(2222) 
    {
       console.log("true");
    }
    else
    {
        console.log("false");
    }
}

truthyFalsyTest();
票数 0
EN

Stack Overflow用户

发布于 2018-09-14 04:02:00

In JavaScript (==)是一个执行类型转换的相等运算符运算符。更严格的(===)标识运算符不会进行类型转换。

例如,即使数字不是布尔值,如果使用(==)运算符,也可以在需要布尔值的地方使用数值。

但是,如果您强制使用更严格的( === )运算符,您将看到'1 === true‘的计算结果为false。

票数 0
EN

Stack Overflow用户

发布于 2018-09-14 04:08:25

0为假,这并不意味着其他数字将为真。简单的例子。如果您在条件中使用===,那么您将看到所有数字的false。

代码语言:javascript
复制
(0 == true) // false
(1 == true) // true

它工作得很好。但是,在下面的示例中,我没有使用not运算符(!)在这种情况下。因此,如果条件为true,则应输出true,否则输出false。尽管如此,它还是会给你带来相反的结果。

代码语言:javascript
复制
if(0){console.log("true")}else{console.log("false")} // false
if(1){console.log("true")}else{console.log("false")} // true
if(15){console.log("true")}else{console.log("false")} // true

现在,如果你将数字转换成布尔值,那么它会给出你所想的结果。

代码语言:javascript
复制
Boolean(0) == true // false
Boolean(1) == true // true
Boolean(2) == true // true
Boolean(othernumber) == true // true

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52320839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档