JS之字符串false转boolean

5,801 阅读1分钟

问题来源

    微信小程序页面跳转时, 会带参数, 该值可能是true、也可能是false。 那么通过options解析出来的参数为string类型, 期望转成boolean类型后进行不同操作。

期望

借助Boolean()方法, 传入'false'时, 输出false; 传入'true'时, 输出true.

我们先来看看如下一段代码能否实现预期.

console.log('类型转换', Boolean('false'))
console.log('类型转换', Boolean('true'))

image.png
实际运行结果不如预期,那么我们看看该如何解决呢?

解决方案

1. 匹配字符串

const showTips = isPartner === 'true' ? true: false 
console.log(showTips)  

2. prototype属性

String.prototype.bool = function() { 
  return (/^true$/i).test(this); 
}; 
console.log("true".bool()); 
console.log("false".bool()); 

总结

用Boolean()类型去判定时, 你会发现0、-0、null、""、false、undefined 或 NaN,这些都可以自动转化为布尔的 false,而字符串的"false"是不是false呢,答案是否定的, 这点要特别注意⚠️!

写在最后

若有错误之处, 恳请留言, 定会及时更正!
若觉着对您有帮助的话恳请点个赞或着收藏吧!