JScript---数据类型转换


<script type="text/javascript">
//Number转换规则  0:false
Number("");        //0
Number(" ");       //0
Number(false);     //0
Number(null);      //0
Number("123");     //123
Number("123abc");  //NaN
Number(undefined); //NaN


//String转换规则
String(123);       //"123"
String("abc");     //"abc"
String(true);      //"true"
String(undefined); //"undefined"
String(null);      //"null"


//Boolean转换规则,除以下类型为flase,其它全部为true
Boolean(undefined);  //false
Boolean(null);       //false
Boolean(0);          //false
Boolean(-0);         //false
Boolean(+0);         //false
Boolean(NaN);        //false
Boolean("");         //false
Boolean(" ");        //false

Boolean(new Boolean(false));    //true
Boolean([]);                    //true
Boolean({});                    //true

//<span style="font-family: Arial, Helvetica, sans-serif;">由于自动转换有很大的不确定性,而且不易除错,建议在预期为布尔值、数值、字符串的地方,全部使用Boolean、Number和String方法进行显式转换</span>

//自动转换数值
'1' - '2';       // -1
'5' * '2';       // 10
true - 1;        // 0
false - 1;       // -1
'1' - 1;         // 0
'1'*[];          // 0
false/'1';       // 0
'abc'-1;         // NaN


//自动转换String
'2' + 1;              // 21
'2' + true;           // 2true
'2' + false;          // 2false
'2' + {};             // 2[object Object]
'2' + [];             // 2
'2' + function (){};  // 2function (){}
'2' + undefined;      // 2undefined
'2' + null;           // 2null


//其它
true+2;         //3
true+true;      //2
1+[1,2];        //11,2
1+{a:1};        //1[object,Object]
{a:1}+1;        //1
({a:1}=1);      //[object Object]1


//四个特殊表达式
[]+[];        //
[]+{};        //[object Object]
{}+[];        //0
+[];          //0
({})+[];      //[object Object]
{}+{};        //NaN
+{};          //NaN
{}+{};        //[object Object][object Object]
{}+[];        //[object Object]

</script>




你可能感兴趣的:(数据类型转换)