var a = {
value:2,
toString:function()
{
console.log("........");
return ++this.value;
}
}
if(a==3 && a==4){
console.log("JS is amazing");
}
如上,用toString就会输出"JS is amazing",我尝试替换了比如toLocaleString就不会输出,这是JS什么特性造就的?
当在使用
==
而不是恒等时,如果原始值不相等,会触发隐式转换,即调用左值的toString
方法转化为字符串再判断是否相等,所以当你把toString
换成toLocaleString
就无法实现.