强制转换
1、 string,boolean—>number
1-1、 纯数字string—>number
特点:只能识别纯数字的字符串
Number(value)
var a = "10";
var str = "hello"
console.log(Number(a)) //10
console.log(Number(str)) //NaN 不是一个数字
console.log(Number("3.0")) //3
console.log(Number(undefined)) // NaN
1-2、 boolean —>number
true --> 1
false -->0
1-3、12px或12.34px这样的string—>number
parseInt();
parseFloat();
var str = "12px";
var str2 = "12.12121px"
console.log(parseInt(str))
console.log(parseFloat(str2))
2、number,string—>boolean
Boolean();
2-1、 number—boolean
特殊:0-->false,其他情况都为true
var a = 0;
var b = 10;
console.log(Boolean(a)) //false
console.log(Boolean(10)) //true
2-2、string—boolean
特殊:""-->false,其他情况都为true
var str = "hello world"
var str1 = " "
var str2 =""
console.log(Boolean(str)) // true
console.log(Boolean(str1)) // true
console.log(Boolean(str2)) // false
3、Any-String
String();
toString();
+"";
Tips:在加运算中,只要一边为字符串,结果一定为字符串。
<script>
/* number,string,boolean */
/* 强制转换
string,boolean -- number
Number(value);
*/
var str = "123";
var num = Number(str);
var t = true;
var f = false;
console.log(str)
console.log(num)
console.log(typeof num)
/*
true -->1
false -->0
*/
console.log(Number(t));
console.log(Number(f))
</script>
自动转换
1、在算术计算中
在算术运算中,先使用Number方法将两边的值转为number,再计算
tips:特殊情况“+”,只要一边为字符串,那么结果一定是字符串
示例1:
<script>
var a=10;
var b="20";
var c=true;
console.log(b-a);//10
console.log(b-c);//19
</script>
示例2:
<script>
var a="21";
var b=4;
console.log(a+b-true+"3");2133
console.log(a-b-true-"false");
var c="false";
console.log(a-b+Boolean(c));//18
</script>
示例3:
<script>
var a="10";
var b=true;
var c=1;
console.log(a+b+c);
// '10true1'
console.log(a+c-b);
// 100
</script>
示例4:
<script>
console.log("" -"9" +true-12)//-20
</script>
+.-.*./.%
a.先使用Number方法将两边的值转为number,再计算
b.