1 自动转换
算术
var a="10";var b=1;var c=true;console.log(a+b-c);//100console.log(a-b+c);//10console.log(a+c-b);//NaN
比较
,<,== 返回的是boolean
- 先将两边的值转为number,再比较
- NaN和任何值作比较,结果都为NaN ``` var a=true; var b=”10”; var c=”hello”; console.log(a>b); 1>10 //false console.log(a>c); 1>NaN //false
var a; console.log(a) // undefined console.log(Boolean(a)) //false console.log(Boolean(null)) // false
<a name="o0AsX"></a>### 1-1 减法运算符(-)```javascript// 在算术计算中先将数据转换为number,再计算var a = true;var b = "13";var c = b-a;/* var c = Number(b)-Number(a) */console.log(c) // 输出12"1"-9+"true"-parseInt(12.34) // NaN"9"-8+"false" // 1false"9"-8-"false" // NaN
1-2 加法运算符(+)
+ 运算符 特殊:遇到**字符串变为 拼接符 **输出字符串
// + 运算符 特殊:遇到字符串变为 拼接符var a = "10";var b = 1;var c = true;console.log(a+b-c) // 101-1= 100console.log(a+b+c) // 101trueconsole.log(a-b+c) // 10console.log(a+c-b) // NaN// NaN和任何数值去计算,结果都是NaN"true1"-1 // NaN
2. 强制转换
2-1 string boolean—>number
Number(“ “) Number(“”) Number(null) => 输出 0
2-1-1 **string—>number
**
var str="10";console.log(str);//10var s="hello world"console.log(s);//NaN
2-1-2 boolean—>number
true --> 1false -->0
2-2 number string—>boolean
**undefined,"",NaN,0,null --> false**
2-2-1 **number—>boolean
0:false 非0:true**
var a=3;var b=0;console.log(Boolean(a));//trueconsole.log(Boolean(b));//false
2-2-2 string—>boolean
空字符串””为:false 其余都为:true
var str="hello world";var s="";console.log(Boolean(str));//trueconsole.log(Boolean(s));//false""-->false
2-3 float 任意型==>number (parseInt() parseFloat() )
var str="12.121212px";console.log(parseInt(str)); //12console.log(parseFloat(str)); //12.121212
2-4 任意型==>string
var a = truevar str = true+""console.log(typeof str)console.log(typeof String(a))console.log(typeof a.toString())
