js 隐式转换

其它类型转换成布尔类型

1.未声名的变量名 undefined=>false

2.变量名为 null 为空   null=>false

3.number  0 , 0.0 ,0/0 ,NaN  =>false

4.空字符串 ""=>false

5.其它对象 =>true 

 1 <script>
 2     var a;    //=>声名变量未赋值
 3      a= null; //=>声名一个变量名赋值为空
 4      a= 0;    
 5      a=0.0;      //=>四种number类型赋值转换为布尔类型都为FALSE
 6      a=0/0;
 7      a=NaN
 8      a="";        //=>赋值为空字符串     
 9     if(a){
10         alert(true)
11     }else{
12         alert(false)
13     }
14 </script>

 其它类型转换为数值型(number)

1.undefined =>NaN

2.null => 0

3.true =>1

4.false =>0

5.字符串类型: 如果是字母字符串 var a ="abcd"  =>NaN

                     如果字符串中包含的为纯数字 var a ="123" =>123

把数字字符串转换为number型

var a="10"

var a =a*1

alert(typeof a)      此时就转换为number类型

 1 <script>
 2    //以上alert返回值 
 3    var a;             //=>NaN 1+NaN,任何数字加上NaN都返回NaN       
 4    a = null;          //=> 1  null转换为0    
 5    a = true;          //=> 2  true转换为1 
 6    a = false;         //=> 1  false转换为0 
 7    a = "123"          //=> 1123 "123"转换为123  特殊的转换类型,字符串拼接  typeof返回类型是字符串类型
 8    a = "abcd"         //=> NaN 转换为NaN
 9    alert(1+a) 
10 </script>

 其它类型转换为字符串类型

 undefined =>"underfined"   null =>"null"

 true =>"true"       false =>"false"

 (number) =>"number"   0.0 =>"0"  0/0 =>"NaN"   NaN=>"NaN"

 1 <script>
 2     document.write(undefined)  //=>"undefined"
 3     document.write(null)      //=>"null"
 4     document.write(true)      //=>"true"
 5     document.write(false)     //=>"false"
 6     document.write(123)      //=>"123"
 7     document.write(0.0)      //=>"0"
 8     document.write(NaN)      //=>"NaN"
 9     document.write(0/0)      //=>"NaN"
10 </script>
原文地址:https://www.cnblogs.com/Ziksang/p/5185659.html