关于javascript:js中的加号运算符

一,对于援用类型对象(我指的是String,Date,Object,Array,Function,Boolean)的+运算符运算过程如下! 
1,首先调用此对象的valueOf办法,失去返回数值A 
2,而后把此数值A转换成数字,失去的是最终数值 
function w(s){ 
document.writeln("<br/>"); 
document.writeln(s); 
document.writeln("<br/>-----------------------------"); 
} 
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";}; 
w(+new Date());//输入NaN 
 
Object.prototype.valueOf=function(){return 1;}; 
w(+{});//输入1 
Object.prototype.valueOf=function(){return "a";}; 
w(+{});//输入NaN 
 
Array.prototype.valueOf=function(){return 1;}; 
w(+[]);//输入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 
二,对于根本数据数据类型,其值转换成数字

w(+5);//输入5 
w(+true);//输入1 
w(+false);//输入0 
w(+"ss");//输入NaN 
w(+"111");//输入111 

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理