1. 참조형 객체(String, Date, Object, Array, Function, Boolean 참조)에 대한 연산자 연산 과정은 다음과 같습니다!
1 먼저 이 객체의 valueOf 메소드를 호출하여 반환값 A 2. 그런 다음 이 값 A를 숫자로 변환하고 최종 값을 얻습니다.
내 테스트는 다음과 같습니다.
function w(s){
document.writeln("
")
document.writeln( s);
document.writeln("
--------------------------------" );
}
String.prototype.valueOf(){return 1;};
w( new String("sss"));//출력 1
String.prototype.valueOf =function(){return "a ";};
w( new String("sss"));//NaN 출력
Date.prototype.valueOf=function(){return 1;};
w ( new Date());//출력 1
Date.prototype.valueOf=function(){return "a";}
w( new Date()); //NaN 출력
Object.prototype.valueOf=function(){return 1;}
w( {});//출력 1
Object.prototype.valueOf=function() {return "a";};
w( {});//NaN 출력
Array.prototype.valueOf(){return 1;}; ;//출력 1
Array.prototype.valueOf=function(){return "a";};
w( []);//출력 NaN
var s=function() {};
Function.prototype.valueOf=function(){return 1;};
w(s);//출력 1
Function.prototype.valueOf(){return "a" ;};
w(s);//NaN 출력
Boolean.prototype.valueOf(){return 1;}
w( new Boolean());//출력 1
Boolean.prototype.valueOf=function(){return "a";};
w( new Boolean());//NaN 출력
2, 기본 데이터용 데이터 유형의 경우 값은 숫자로 변환됩니다.
w( 5);//출력 5
w( true);//출력 1
w( false); // 출력 0
w( "ss") // 출력 NaN
w( "111"); // 출력 111