不得不说一下0, false, null, undefined var t1 = 0; var t2 = false; var t3 = null; var t4; 则:t1==t2;t1!==t2; t1!=t3; t1!==t3; t1!=t4; t1!==t4; t2!=t3; t2!==t3; t2!=t4; t2!==t4; t3==t4; t3!==t4; 如果一个object和一个基本类型比较,则先调用对象的valueOf,再调用对象的toString与基本类型进行比较 如果是与boolean比较,先把true转为1,false转为0再比较。 var pa = new Point(1,1); alert(pa==2);会输出"in valueOf",再输出"true"; 如果屏蔽掉Point.prototype.valueOf则输出"in toString",再输出"false"; var pa = new Point(1,0); 则pa==true; 关系操作符>=,<=,>,< 如果两边都是数字,或者可以转化为数字,则比较数字。 如果两边都是string,或者可以转化为string,则比较string。 如果一边可转为string,一边可转为number,则再试图把string转为number再比较,如果string不能转为number, 则为NaN,返回false. 如果有object参与比较,则总是试图转object为number或string再比较。 下面有一个有趣的例子: function Point(x,y){ this.x = x; this.y = y; };
Point.prototype.toString = function(){ alert("in toString"); return "x=" + this.x + " y=" + this.y; }; Point.prototype.valueOf = function(){ alert("in valueOf"); return this.x+this.y; }; var pa = new Point(1,1); var pb = new Point(1,1); 则(pa==pb)==false; (pa>pb)==false; (pa<pb)==false; 但是: (pa>=pb) == true; (pa<=pb) == true;
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有