是否有任何有意义的用例将undefined赋值给变量?

kaw*_*wty 2 javascript

nullundefined在JavaScript中.是否有任何有意义的用例分配undefined给变量?

Den*_*ret 5

是.

当一个属性有一个值,现在你希望它没有,你通常会有这些选择:

删除:

delete obj.prop;
Run Code Online (Sandbox Code Playgroud)

问题:它有很大的性能影响.它设计精良的JS程序中性能最高的杀手之一.跟踪它并确保在性能很重要时永远不会使用它(请注意,影响不只是位于删除属性的位置,而是位于稍后读取或写入对象的其他属性的位置,包括调用方法时).

将值设置为null:

obj.prop = null;
Run Code Online (Sandbox Code Playgroud)

当值的预期类型是"对象"(或有时"字符串")时,这仅具有语义意义.请注意,null(即没有对象)和undefined(即未设置值)之间存在语义差异.

将值设置为NaN:

obj.prop = NaN;
Run Code Online (Sandbox Code Playgroud)

你不会将它用于除数字之外的任何东西(但是根据具体的使用情况,它可以有很多意义).

将值设置为undefined:

obj.prop = undefined;
Run Code Online (Sandbox Code Playgroud)

在大多数其他情况下,这是最佳选择.它也可以很好地运行通常正确的方法来测试参数或参数的属性是否已经设置,即检查options.something === undefined.