我在怪异的情况下呆了几个小时,从服务器接收到的JSON的一个数字属性无法通过简单的相等性测试。

var form =  {'answer':'','categoryDisplay':'dbAdmin','creationDate':null,'id':0,'question':'','techJobDisplay':null,'techJobId':65};

var selTechJobId = form.techJobId;

var thisVal = String(65);
var restoreVal = String(selTechJobId);

alert("thisVal : " + thisVal + " | typeof thisVal : " + typeof thisVal);
alert("restoreVal : " + restoreVal + " | typeof restoreVal : " + typeof restoreVal);

alert("thisVal === restoreVal : " + thisVal === restoreVal);


当我运行此命令时,第三个警报显示为“ false”。对我来说,它显然应该显示“ true”。我显然缺少了一些东西。

我一直在搜索这个问题达数小时之久,我发现其中大多数是关于类型不匹配的问题。如您所见,我将它们都明确地转换为String,因此这里不应该成为问题。

最佳答案

通过使用:"thisVal === restoreVal : " + thisVal,您正在连接字符串,因此您在比较"thisVal === restoreVal : 65""65"

10-04 21:40