您的位置:首页 > 其它

关于 Boolean 的转换

2016-12-21 10:06 190 查看
前端经常喜欢这样写 if else

if(value)
{
//do something
}


javascript 能智能的把任何类型的 value 转换成 boolean 来进行 if 判断

转换是这样的

if("" == true) //不是这样哦
{
console.log("z");
}

if(new Boolean("")) //是这样
{
console.log("z");
}


逻辑是 :

console.log(new Boolean("") == false);
console.log(new Boolean("a") == true);

console.log(new Boolean({}) == true);

console.log(new Boolean([]) == true);

console.log(new Boolean(0) == false);
console.log(new Boolean(1) == true);
console.log(new Boolean(100) == true);

console.log(new Boolean(undefined) == false);

console.log(new Boolean(null) == false);

console.log(new Boolean(new Date()) == true);


for string : 只有 length = 0 时是 false

for number : 只有 = 0 时是 false

object, array, datetime 总是 true

undefined null 总是 false

除了 if(value) 我们也经常把 2 个不同的类型做对比

if("z" == true)

js 会把他们强转成相同的类似来对比. 至于传谁, 我忘记了. 转法是 new String(true);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: