var x = 1;var obj = { valueOf: function() { x = 2; return 0; }};console.log(x); //1console.log(obj.valueOf()); //0console.log(obj); //Objectconsole.log(obj == 0,x); // true 21问:为什么都是输出x,两者值不同?2问:obj出来的是个Object,为什么和0比较会true?3问:接上问,出现true,是因为==的类型转换吗?那我把obj里的valueOf改成其它对象名,为什么就变成false了(如下)?var x = 1;var obj = { asd: function() { x = 2; return 0; }};console.log(x); //1console.log(obj.asd()); //0console.log(obj); //Objectconsole.log(obj == 0,x); // false 2
添加回答
举报
0/150
提交
取消
