JavaScript中的真值和假值是什么?

JavaScript在布尔上下文中(如条件语句)使用类型转换(将一个数据类型的值隐式转换为另一个数据类型)。这意味着根据在布尔上下文中的求值方式,值被认为是真值(求值为true)或假值(求值为false)。

在JavaScript中,有6个被认为是假值的值:

  • 关键字false
  • 原始值undefined
  • 原始值null
  • 空字符串(''""
  • 全局属性NaN
  • 表示0的数字或BigInt(0-00.0-0.00n

其他所有值都被认为是真值。重要的是要记住,这适用于所有JavaScript值,即使它们看起来可能是假值,比如空数组([])或空对象({})。

您可以使用Boolean()函数或双重否定(!!)来检查一个值的真值性。

Boolean(false);         // false
Boolean(undefined);     // false
Boolean(null);          // false
Boolean('');            // false
Boolean(NaN);           // false
Boolean(0);             // false
Boolean(-0);            // false
Boolean(0n);            // false

Boolean(true);          // true
Boolean('hi');          // true
Boolean(1);             // true
Boolean([]);            // true
Boolean([0]);           // true
Boolean([1]);           // true
Boolean({});            // true
Boolean({ a: 1 });      // true