为什么将输入值设置为undefined不会为空?

时间:2019-01-25 19:12:55

标签: javascript input

如以下示例所示:

document.getElementById('test1').value = null;
document.getElementById('test2').value = undefined;
<input id="test1" value="DEFAULT TEXT" />
<input id="test2" value="DEFAULT TEXT" />

只要将输入值设置为null,就会重置输入值,但是为什么将输入值设置为undefined时也不会重置呢?

它是如何设置的是字符串"undefined"的值呢?

2 个答案:

答案 0 :(得分:6)

.value是一个字符串,需要一个字符串,因此清空它的正确方法是使用一个空字符串:

 /*...*/.value = "";

分配undefined将导致它被字符串化,从而导致"undefined",而null无法被字符串化,因此spec说,分配{{1} }到null就像使用一个空字符串。

答案 1 :(得分:2)

undefined表示已声明变量,但尚未分配值。

另一方面,null是分配值。可以将其分配给变量,以表示没有值。