为什么布局在if(variable)和if(variable == true)之间是不同的?

时间:2014-04-16 17:45:04

标签: javascript

我对JavaScript中的if语句和布尔值评估有疑问。

我在jsFiddle上创建了click的例子,有四个不同的函数可以通过循环来计算数组中的类型。

但是我们只关注功能b和c。

function b(p) {
    return (p == true);
}

function c(p) {
    if (p) {
        return true;
    }
    else {
        return false;
    }
}

正如您在控制台中看到的结果不同,例如,-1和'Hello'对c为真,而b为false。

为什么会这样?

感谢您的关注!

1 个答案:

答案 0 :(得分:-1)

-1 != trueHello != true-1Hello都是真实的,并且在转换为布尔值(if语句的作用)时评估为true是为什么

if('Hello') {
  return true;
} else {
 return false;
}

返回true;