大家都知道在JS的世界里, 0、-0、null、””、false、undefined 或 NaN,这些都可以自动转化为布尔的 false,那么字符串的”false”是不是false呢,答案是否定的,if(“false”) 来判断的话,是等于true的。

“false”的布尔值是true,那么怎么把false的字符串变成false的布尔值呢?
w3c解释如下:

最后,转换方法如下:
1、

example
  • js
1
2
var value = 'false';
var flag = value === 'false' ? false : true;

2、
example
  • js
1
2
3
4
String.prototype.bool = function() {
return (/^true$/i).test(this);
};
console.log("false".bool()); // false