Javascript, сравнивающий число, полученное из свойства Object как String

Я застрял на несколько часов в странной ситуации, когда одно числовое свойство 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);

Когда я запускаю это, третье предупреждение отображает "ложь". Для меня это ясно должно отображать "правда". Я явно что-то упускаю.

Я часами гуглял об этом и вижу, что большинство из них связано с несоответствием типов. Как видите, я явно конвертирую их оба в String, поэтому здесь проблем не должно быть.

3 ответа

Решение

Используя: "thisVal === restoreVal : " + thisVal вы конкатинируете строку, поэтому вы сравниваете "thisVal === restoreVal : 65" с "65"

Проблема возникает в последнем предупреждении в вашем коде, которое вы должны заключить в скобки вокруг оператора после оператора +, например:

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));

Таким образом, он не пытается добавить значение первой части выражения к thisVal перед его оценкой.

Исправьте ваш код

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

потому что в вашем варианте вы сравниваете ""thisVal === restoreVal: 65"и"65" - они не равны

http://jsbin.com/dowihoqizi/1/

Другие вопросы по тегам