5.数据类型的转换
-
将一种数据类型转成另一种数据类型
-
强制转换(程序员通过某些方法实现转换)
-
隐式转换(计算机自动转换为其他数据类型)
-
5.1强制转换成number类型
-
Number() parseInt() parseFloat()
5.1.1Number强制转换
-
Number(要转换的数据):将数据转换为Number类型 如果转换不了则是返回NaN
<script>
/*
Number(要转换的数据):将数据转换为Number类型 如果转换不了则是返回NaN
*/
var n1 = 10;
var n2 = false;
var n3 = "10";
var x = "10px";
var y = "";
var n4 = undefined;
var n5 = null;
console.log(Number(n1));//10
console.log(Number(n2));//true-1 false-0
console.log(Number(n3));//10
console.log(Number(x));//NaN
console.log(Number(y));//" "-0 ""-0
console.log(Number(n4));//NaN
console.log(Number(n5));//0
==总结:Number方法可以转换的:string类型(纯数字、""-0 " "-0)、boolean类型(true-1,false-0)、null(0) 其他都是NaN==
5.1.2parseInt转换
-
parseInt(要转换的数据):将数据转换为number类型,从左往右开始转换,遇到不能转换的或者末尾结束,如果一开始就不能转换则是NaN,结果取整(舍弃小数)
<script>
/*
parseInt(要转换的数据):针对string类型转换
将数据转换为number类型,从左往右开始转换,遇到不能转换的或者末尾结束,如果一开始就不能转换则是NaN,结果取整(舍弃小数)
*/
console.log(parseInt("10"));//10
console.log(parseInt("10px"));//10
console.log(parseInt("10.5px"));//10
console.log(parseInt("10.9px"));//10
console.log(parseInt("px10.9px"));//NaN
</script>
5.1.3parseFloat转换
-
parseFloat(要转换的数据):将数据转换为number类型,从左往右开始转换,遇到不能转换的或者末尾结束,如果一开始不能转换则是NaN,结果保留小数
<script>
/*
parseFloat(要转换的数据):将数据转换为number类型,从左往右开始转换,遇到不能转换的或者末尾结束,如果一开始不能转换则是NaN,结果保留小数
*/
console.log(parseFloat("10"));//10
console.log(parseFloat("10.5px"));//10.5
console.log(parseFloat("px10.5px"));//NaN
console.log(parseFloat("10.5"));//10.5
</script>
5.2强制转换为boolean类型
-
Boolean(要转换的数据):将数据类型强制转换为boolean类型 结果为true或者是false
<script>
// number类型:非0即真 NaN也是false
console.log(Boolean(1));//true
console.log(Boolean(-10));//true
console.log(Boolean(3.14));//true
console.log(Boolean(0x7788));//true
console.log(Boolean(0));//false
console.log(Boolean(NaN));//false
// string类型:有值即为真
console.log(Boolean("10"));//true
console.log(Boolean("098766*****"));//true
console.log(Boolean(" "));//true
console.log(Boolean(""));//false
// null undefined
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
/*
总结:Boolean结果为false的有:0 NaN null undefined ""
*/
</script>
==总结:Boolean结果为false的有:0 NaN null undefined ""==
5.3强制转换为string类型
-
String() 要转换的数据.toString()
5.3.1 String强制转换
-
String(要转换的数据):将数据转换string类型,直接是在数据外面加引号
<script>
console.log(String(1));//"1"
console.log(String(NaN));//"NaN"
console.log(String(null));//"null"
console.log(String(undefined));//"null"
console.log(String(true));//"true"
</script>
5.3.2 toString强制转换
-
要转换的数据.toString: 强制转换为string类型
<script>
/*
1.要转换的数据.toString
强制转换为string类型
*/
var n = 1;
console.log(n, n.toString());//"1"
var b = true;
console.log(b.toString());//"true"
// null和undefined没有toString这个方法的
var x = undefined;
console.log(x.toString());//报错
</script>
5.4其他小方法
<script>
// 1.toFixed(n):保留n位小数
var n = 3.1415926;
console.log(n.toFixed(4));//3.1416
var n1 = 0.1 * 0.7;
console.log(n1, n1.toFixed(2));
// 2.isNaN is not a number 是不是 不是一个数字 false是数字 true不是一个数字
console.log(isNaN(3));//false
console.log(isNaN("文字"));//true
// isNaN 判断之前会先调用Number方法进行强制转换 再来进行判断 Number(true)
console.log(isNaN(true));//false
console.log(isNaN(""));//false
</script>
6.运算符和表达式
运算符:连接一个以上的操作符中间的符号
表达式:由操作数和运算符组成的式子
10 + 20 var a = 10 +运算符 10 20操作数 表达式 10 + 20运算符的分类:算术运算符 赋值运算符 逻辑运算符 比较运算符 三目运算符
表达式的分类:算术表达式 赋值表达式 逻辑表达式 比较表达式 三目表达式
var a = 10;
a++;
++a;
console.log(a);
var a = 10;
var b = a++;
console.log(a,b);
var n = 10;
var m = ++n;
console.log(n,m);
var a = 10;
var b = a++ + ++a + a++;
var c = b++ + ++b + ++a;
console.log(a,b,c);
var a = 10;
var b = ++a + a++ + a++ + ++a;
var c = ++b + a++ + b++ + ++b;
console.log(a,b,c);
这些大家可以试着算一算