我有Javascript的这个简单问题,我想比较两个变量,但不知怎的,它不能正常工作。我甚至检查过变量的类型是否相同。请帮忙。 具体来说,我得到数字警报,我甚至得到当前计数器的警报是5总共是5,虽然我希望它进入“然后”。
function fun(idCount, finalCallback) {
this.idCount = parseInt(idCount);
var counter = 0;
var strings = {};
this.register = function(str, id) {
counter++;
strings[parseInt(id)] = str;
if(counter == this.idCount) {
alert("Going to override");
//blabla
} else {
alert("Current counter is: " + counter + " Total " + idCount + ". Types: " + typeof counter + " and " + typeof idCount);
}
}
}
答案 0 :(得分:2)
试试这个,
function fun(idCount, finalCallback) {
var self = this;
this.idCount = parseInt(idCount, 10);
var counter = 0;
var strings = {};
this.register = function(str, id) {
counter++;
strings[parseInt(id, 10)] = str;
if(counter == self.idCount) {
alert("Going to override");
//blabla
} else {
alert("Current counter is: " + counter + " Total " + idCount + ". Types: " + typeof counter + " and " + typeof idCount);
}
}
}
答案 1 :(得分:0)
只是指出,如果使用==,两个对象是否属于同一类型并不重要。
示例:
"0" == 0 // true
要强制进行类型比较,请使用 ===
0 === 0 // true