JS 字符串转换成bool类型

在写js的时候,遇到了这样一个问题

var res = $(".test").attr("data-value");
console.log(res);
if(res === true){
  console.log(123);
}else{
  console.log(456);
}

打印出来的结果显示,res确实是true,但最终结果却总是456,在去掉一个等号写成弱等于后,结果照旧。

代码就这些,不可能是代码问题,那问题只可能出在判断上。

思考过后,选择了两种解决办法

第一种,修改等号后面的值,转换为字符串格式

var res = $(".test").attr("data-value");
console.log(res);
if(res === 'true'){
  console.log(123);
}else{
  console.log(456);
}

第二种,修改等号前面的值,转换为JavaScript 对象

var res = $(".test").attr("data-value");
console.log(res);
res = JSON.parse(res);
if(res === true){
  console.log(123);
}else{
  console.log(456);
}