大家好,我是小梅,公众号:「小梅的前端之路」 原创作者。
作为在前端领域不断探索的一员,在此记录开发中遇到的问题,如果你也遇到了相同的问题,希望本文对你有帮助。
遇到的问题:开发中想根据test对象是否有type属性来进行不同的逻辑的操作,type=0时,原本是想要输出is true的,可实际结果却是输出的is false。百思不得其解,当时真的是没想到这一层,用if进行判断,会对type进行转换。
’’、0、undefined、null、NaN等五种值都会被转换为false,因此实际输出与设想的结果不一致。
const test = {
type: 0
}
if (test.type) {
console.log('is true')
} else {
console.log('is false')
}
这里总结了一下这五种数据转换为false的情况,需要的可以保存一下。除了布尔值false和这五种情况进行if判断,其余的都是转换为true,’ ',[],{},new Boolean(false)等也都是转换成true。
因为{},[]、new Boolean(false)等都属于object类型,object类型(null除外)强制boolean型的结果都是true。
❤️ 欢迎素质三连[点赞 + 收藏 + 评论]
我是小梅,有兴趣的话可以在微信搜一搜「小梅的前端之路」第一时间接收文章更新通知,一起沟通、学习成长呀。