如以下示例所示:
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"
的值呢?
答案 0 :(得分:6)
.value
是一个字符串,需要一个字符串,因此清空它的正确方法是使用一个空字符串:
/*...*/.value = "";
分配undefined
将导致它被字符串化,从而导致"undefined"
,而null
无法被字符串化,因此spec说,分配{{1} }到null
就像使用一个空字符串。
答案 1 :(得分:2)
undefined
表示已声明变量,但尚未分配值。
另一方面,null
是分配值。可以将其分配给变量,以表示没有值。