“if(object)”作为非空测试的正确术语?

时间:2016-12-15 03:04:38

标签: actionscript-3 terminology

在ActionScript 3中,您可以检查是否存在如下值:

if (object) {
    trace("This object is not null, undefined, or empty!")
}

我经常将其用作if (object != null)

的简写

是否有以这种方式评估null对象的适当术语?我想这是语言的布尔类型转换规则的问题,但我不确定是否有结果语法的名称。

2 个答案:

答案 0 :(得分:1)

如果您的object始终是实际的对象引用,例如任何对象类型的变量,然后检查if (object)是测试空值的有效方法。如果它是变体类型的属性,或者可能包含简单值(int,字符串等)的动态属性,那么测试null的正确方法将是显式转换,甚至可能使用严​​格类型检查{{1 }}。

答案 1 :(得分:0)

  

Like most computer languages, Ecma-script supports Boolean data types; values which can be set to true or false. In addition, everything in JavaScript has an inherent Boolean value, generally known as either truthy or falsy

虚假值列表(非真实)

  • 0(零)
  • “”(空字符串)
  • 未定义
  • NaN(一个特殊的数字值,意思是非数字!)

定期检查变量是否为空 您可以使用:(a == null)如果 a 为空,则此语句返回 true 也返回 true 对于以上所有列表,因为它们都是 falsy 值而(a == undefined)返回 true ,即使 a 也未定义但是null或0或 false

所以在这种情况下你应该使用身份运营商。当 a 为空

时,以下评估仅返回true
(typeof a === "null")
// or
(a === null)