此题目来自鹅厂的笔试题,将其核心问题取出:
if (new Boolean(false)) { console.log('true'); } else { console.log('false'); }
或许,你会回答打印出false,当然我一开始也是这么想的。很可惜,答案是true,因为,new Boolean(false)并不是false,而是一个对象,所以可以通过if。当然回答错误,这是因为对可以强制转化成false的知识点不足。下面来说说,哪些东西可以强制转化成false,(可用!!来获取当前值的bool值):
false // 肯定是的 !!"" // false 注:!!" "会得到true !!null // false !!undefined // false !!NaN // false !!0 // false // 注:!!{},!![] 这些都会得到true,他们都能通过if判断。
不能通过if判断的值就只有这6个了,以后遇到类似的问题,就不能再出问题啦。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。