1. 参照型オブジェクト (String、Date、Object、Array、Function、Boolean を指します) の演算処理は次のとおりです。
1. まず、このオブジェクトの valueOf メソッドを呼び出して戻り値 A 2. 次に、この値 A を数値に変換し、最終的な値を取得します
私のテストは次のとおりです:
function w(s){
document.writeln("
"); s);
document.writeln("
--------------------------------" );
}
String.prototype.valueOf=function(){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";}; //出力 NaN
Object.prototype.valueOf=function(){return 1;}
w( {});//出力 1
Object.prototype.valueOf=function(); {return "a";};
w( {});//出力 NaN
Array.prototype.valueOf=function(){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=function(){return "a" ;};
w( s);// NaN を出力
Boolean.prototype.valueOf=function(){return 1;};
w( new Boolean());// 出力1
Boolean.prototype.valueOf=function(){return "a";}
w( new Boolean());//出力 NaN
2、基本データ用データ型の場合、値は数値に変換されます
コードをコピー
w( false); // 出力 0
w( "ss"); // 出力 NaN
w( "111") // 111 を出力