我从一本书中看到了这段代码:
var a = "one";
var b = "four";
a>b; // will return true
Run Code Online (Sandbox Code Playgroud)
但它没有提到为什么"一个"大于"四个".我试过c = "a",它比a和b小.我想知道JavaScript如何比较这些字符串.
在尝试确定一个值是否大于另一个值时,我遇到了一个奇怪的JavaScript/jQuery数学错误.
这是一个使用jsFiddle链接到我的代码:http://jsfiddle.net/qxeTj/
$("#Quantity").live("focusout", function() {
var qty = +$(this).val();
var stock = +$('#StockLvl').val();
if (qty > stock) {
$('#Result').html("<p>Quantity: " + qty + "</p><p>Stock: " + stock + "</p>" + "<p>Not Enough Stock.</p>");
}
else if (stock > qty || stock == qty) {
$('#Result').html("<p>Quantity: " + qty + "</p><p>Stock: " + stock + "</p>" + "<p>Enough Stock.</p>");
}
});
Run Code Online (Sandbox Code Playgroud)
问题示例:
当我将焦点移出该input字段时,如果它具有1或的值2,则它可以正常工作.如果我有一个值,它甚至可以工作3, 4, 5, 6, 7, 8, 9.
但问题是,然后当我用值从 …
我的javascript表现得很奇怪!
我的html文件中有一个输入字段.此输入字段由javascript以下列方式读取:
var bscore = $("#bscore").val();
Run Code Online (Sandbox Code Playgroud)
然后我想在输入低于某个输入时显示警告
if(bscore<"913"){
document.getElementById("bscorealert").style.display="block";
};
Run Code Online (Sandbox Code Playgroud)
这很好用.因此,当数字高于913时,它不应显示.只有javascript表现得很奇怪,当bscore输入字段中的数字高于999(因此1000和更高)时,if语句被触发并显示警报.
这怎么可能?
这是JavaScript试图将它们转换为数字的失败吗?如果是这样,他们被转换成什么数字?或者字符串10背后的逻辑是什么,小于字符串9?
我正在学习JavaScript,我正在尝试从Beginning JavaScript的示例中改进代码.具体来说,我试图让代码检查结束值是否大于起始值.
如果我输入一个起始值50和一个结束值6或8,那么我得到假结束<= start,即使6和8都小于50.如果我输入任何小于50的其他值,我得到真正.我测试的任何起始值都有同样的问题.我在逻辑中找不到任何错误,所以我必须误解代码(或者只是盲目).
谢谢!
<body>
<script>
while (isNaN(start) == true) {
var start = prompt("Enter starting value", "");
}
while (isNaN(end) || end <= start) {
var end = prompt("Enter ending value", "");
document.write((end <= start) + "<br/>");
document.write(start + "<br/>");
document.write(end + "<br/>");
}
</script>
</body>Run Code Online (Sandbox Code Playgroud)