.val()是否支持以整数或浮点形式返回?

时间:2013-06-10 11:57:52

标签: jquery

我刚写了一段代码,我做了一个基本的比较:

HTML是:

<input id="someInputField" />

Javascript是:

var someVariableThatIsANumber = 1123.23
if (someVariableThatIsANumber > $("someInputField").val()) { 
   // do something
}

代码有效,在某种意义上,如果someInputField的值是大于1123.23的数字,则返回TRUE,如果小于1123.23,则返回false。我的问题是:为什么?

我问,因为val() should return a string并且无法比较它。为什么会这样做?

3 个答案:

答案 0 :(得分:3)

它返回一个String,它由JavaScript引擎隐式转换为正确的数值。

通常,JavaScript使用隐式转换来适应不同的类。

当您执行"something" + 1时,情况相反。然后将1转换为字符串。

答案 1 :(得分:0)

它的作用是因为当你将一个字符串与一个数字进行比较时,该字符串首先也被转换为一个数字用于该转换。

来自the MDN on comparisons

  

比较数字和字符串时,字符串将转换为a   数值。 JavaScript尝试转换字符串数字   字面值为数字类型值

小心不要将字符串与另一个字符串进行比较,因为"33"<"9"true

答案 2 :(得分:0)

===比较没有转换类型

==与转换类型进行比较