为什么不进入条件

时间:2015-03-02 18:16:31

标签: javascript

 <script type="text/javascript">
//var EProductId = prompt('Please enter your product Id');

var EProductId = [];
EProductId[0] = prompt("New member name?");

//Product price, code, name, declare here

var ProductId = [];
    ProductId[0] = 001;

var product = [];
    product[0] = "tshirt";

var ProdPrice = [];
    ProdPrice[0] = 299;

//Condition start here

if (ProductId[0] === EProductId[0]) {

//  var EProductId2 = parseInt(prompt("Please enter a product", "")ProductId[0] + ' ' + product[0] + ' ' + ProdPrice[0]);
    prompt(ProductId[0] + ' ' + product[0] + ' ' + ProdPrice[0]);
} else{
    alert("You pressed Cancel or no value was entered!");
}
 </script>

为什么不进入条件。我在运行程序后输入值001,但它会提示消息是您按下取消或没有输入值!

4 个答案:

答案 0 :(得分:1)

if (ProductId[0] == EProductId[0]) {}

比较类型时仅使用===

答案 1 :(得分:1)

===仅用于javascript中的严格比较。例如:if('0' == 0)将返回true,因为此处仅比较值。但是,===会检查它们是否属于同一类型(2个字符串,2个数字,但不是每个1个)。因此,0===0返回true,而0==='0'返回false。

您应该使用==代替。使用==,您可以比较不同类型的值是否真的&#39; truthy&#39;或者&#39; falsy&#39;。示例:0 == 0返回true以及'0' == 0

答案 2 :(得分:0)

我想它会回归&#34; 001&#34;作为一个字符串,试试这个

if (ProductId[0] === +EProductId[0])

答案 3 :(得分:0)

typeof(prompt())返回字符串。您必须先使用parseInt(string, radix)将其转换为整数。 10指定了基数10,即人们使用的通用编号系统。

if (ProductId[0] === parseInt(EProductId[0],10))