我在怪异的情况下呆了几个小时,从服务器接收到的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"