为什么 var 组合 = null + “” 有一个值

Why does var combined = null + "" has a value?

本文关键字:有一个 null var 组合 为什么      更新时间:2023-09-26

可能是一个困惑的javascript菜鸟的一个非常基本的问题......

为什么

var hasthisvalue = null;
if (hasthisvalue)
    print("hasthisvalue hs value");

var hasthatvalue = "";
if (hasthatvalue)
    print("hasthatvalue has value");

不要打印任何东西,但是如果我将这两者结合起来

var combined = "hasthisvalue" + "hasthatvalue";
if (combined)
    print ("combined has value");

是吗?

或者更直接:

var combined = null + "";
if (combined)
    print ("combined has value");

如果我只添加两个没有值的变量,为什么"组合"有一个值?我错过了什么?

分别比较它们时,每个都会在if检查中转换为false。 当你组合它们时,null成为字符串"null",所以它们的串联是字符串"null",它不会转换为false

前 2 个示例是值为"假"的情况。这些值等于松散比较期间的false

  • 定义
  • 空字符串
  • 布尔假
  • 数字 0

此列表中未列出的其他值是"真实的",在松散比较中等于true

第三种情况,您可以在控制台中尝试。 null+''变成一个字符串:"null",因此是真实的。

相关文章: