字符串不是只有在空的时候才是false吗?

发布于 2022-09-03 01:23:07 字数 119 浏览 11 评论 0

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

小苏打饼 2022-09-10 01:23:07
var str = "hello";
console.log(str == true);

if (str) {
    console.log("if true");
}

// false
// if true

也就是说,上面的 == 判断并不是把 str 转换为布尔型来判断的,但是下面 if 语句的条件必须是布尔弄,所以是转换为布尔型来判断的,那么试试这个

console.log("true" == true);
console.log("false" == false);

// false
// false

很显示,== 也不是把布尔型转换为字符串来比较的……

其实 == 的比较确实是转换成字符串来比较但,但是在布尔型转换为字符串之前,要先转换成 Number,所以下面的实验就成功了

console.log("1" == true);
console.log("0" == false);

// true
// true
錯遇了你 2022-09-10 01:23:07

变量为null或者undefined时,用比较运算符时才会做转义成false

呆° 2022-09-10 01:23:07

是时候祭出这个大杀器了:
https://dorey.github.io/JavaScript-Equality-Table/
点上边的三个 tab 可以分别看到 ==, ===, if() 的各种比较结果

另外,除非有明确的理由,否则最好使用 === 进行比较

极度宠爱 2022-09-10 01:23:07

看这个吧:http://stackoverflow.com/questions/19839952/all-falsey-values-in-javascript

这个答案把javascript所有的falsy value 都列出来了

贪了杯 2022-09-10 01:23:07

在javascript里面,做逻辑判断的时候,null,undefined,""空字符串,0,NaN都默认是false

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文