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

var hasAuth = 'true';

 if(hasAuth){

//此时的hasAuth是true

}

var hasAuth = 'false';

 if(hasAuth){

//此时的hasAuth是true

}

“false”的布尔值是true,那么怎么把false的字符串变成false的布尔值呢?

w3c解释如下:

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");

最后我以下的代码转换 "false"字符串

 var value = "false";

var flag = value ==="false" ? false : true;

 

相关文章:

  • 2021-10-06
  • 2021-12-06
  • 2021-12-20
  • 2022-12-23
  • 2021-07-01
猜你喜欢
  • 2021-11-08
  • 2021-09-24
  • 2022-02-04
  • 2022-02-07
  • 2021-12-03
相关资源
相似解决方案