字符串false转换为布尔值false问题

493 阅读1分钟

字符串"false"转换为布尔值false

问题

在项目中遇到字符串“false”写在if('false')中仍为true问题

var myBoolean=new Boolean();
 
//下面的所有的代码行均会创建初始值为 false 的 Boolean 对象。
var myBoolean=new Boolean();
var myBoolean=new Boolean(0);
var myBoolean=new Boolean(null);
var myBoolean=new Boolean("");
var myBoolean=new Boolean(false);//不带单引号的是false
var myBoolean=new Boolean(NaN);

//下面的所有的代码行均会创初始值为 true 的 Boolean 对象:
var myBoolean=new Boolean(1);
var myBoolean=new Boolean(true);
var myBoolean=new Boolean("true");
var myBoolean=new Boolean("false");//带单引号的字符串false最终等于true
var myBoolean=new Boolean("Bill Gates");

解决

JSON.parese()

JSON.parse('false')  // false
JSON.parse('true') //true

但此方法存在问题,当传人其他字符串时会报错,像这样JSON.parse('fales')

三元运算符

const bool: boolean = 'false' !== 'false';
// false
const bool: boolean = 'true' !== 'false';
// true

参考来源:如何快速、高效的将“false”转换为false