我很确定这对大多数人来说是显而易见的,但我不知怎的考虑到这一点。请善待;)
我意识到Element.value
返回String
而Element.length
返回Int
,但我仍然不确定这两个方法是否返回相同的值(请参阅示例) )。
玩具示例
我有以下输入框
<input id="myInput" type="text" value="">
和两个单独的函数,使用以下方法
---method1---
var x = document.getElementById("myInput").length;
---method2---
var y = document.getElementById("myInput").value;
y
值为0
,但x
的值是多少? null
或0
?
换句话说
Element.value === ""
和Element.length === 0
表达同样的事情?
答案 0 :(得分:3)
var x = document.getElementById("myInput").length;
此声明将为您undefined
。因为长度是 数组 的属性, 字符串 和nodeList个对象。你不能在html对象上实现length属性。
y将为零。否则,它将为您提供在文本字段中写入波形的值。如果您想要输入字符串的长度,请尝试x.value.length
< / p>
答案 1 :(得分:2)
Element.value
会在元素上返回一个允许用户输入的字符串。此属性由系统提供。 Element.length
不是财产。
JavaScript中的各种其他对象确实具有属性length
。 Array
和所有数组对象都有length
属性。它们返回数组的长度。一个阵列示例是节点列表。这是一个元素列表。例如,函数getElementsByTagName
返回节点列表。您可以使用length
检索此列表的长度。字符串对象也有一个length属性(String.prototype.length
)。它返回字符串的长度。 (字符串也是一种数组)。见这个例子:
alert("test"[0]);
这会提醒t
。因此,您可以循环遍历字符串,就像它在数组中一样。
总结:Element.value === "" and Element.length === 0
不相同,因为它们彼此无关。 Element.value === ""
和Element.value.length === 0
几乎做同样的事情。第一个检查返回的字符串是否为空,而第二个检查该字符串的长度。在这两种情况下,字符串的长度为0
。