typeof()
也可以写成typeof加个空格
判断数据是什么类型的 共有六种返回值 这六种返回值都是string类型的
number string boolean object undefined function
像数组 null这些都会返回object
NaN会返回number
如果变量未定义直接使用的话 只有在typeof中程序能不报错
如 type(a); //结果为undefined
type(type(a)); //结果为string
toFixed()
保留几位有效数字 且四舍五入 括号中只能放数字
如 var num = 123.456789
num.toFixed(3); //结果为123.457
JS中会有精度不准的问题 比如 0.14 * 100 得到是14.000000000000002
只能处理到小数点前后的16位 比如 10000000000000001+10000000000000001 结果是20000000000000000
0.10000000000000001+0.10000000000000001 结果是0.2
类型转换
1 显式类型转换
1.1 Number(mix)
转换为数字
看起来不是数字的都无法转换为数字
如 var a = Number(“123”); //结果为123
var a = Number(null); //结果为0
var a = Number(“123abc”); //结果为NaN
var a = Number(undefined); //结果为NaN
var a = Number(“a”); //结果为NaN
var a = Number(NaN); //结果为NaN
1.2 parseInt(string,radix)
转换为整型 可以从数字位开始看到非数字位
radix表示基准 范围为2-36 以redix进制为基准转换为10进制
如 若为16 表示以16进制为基准转换为10进制数
那些不是数的转换之后都为NaN
如 var a = parseInt(123.9); //结果为123
var a = parseInt(“123.9”); //结果为123
var a = parseInt(“123.9abc”); //结果为123
var a = parseInt(“abc123.9abc”); //结果为NaN
var a = parseInt(null); //结果为NaN
var a = parseInt(“b”,16); //结果为11
1.3 parseFloat(string)
转换为浮点型 可以从数字位开始看到(小数点也看)非数字位
如 var num1 = “123.123abc”; //结果为123.123
1.4 toString(radix)
转换为字符串 通过.toString()的方式来使用
注意 undefined和null不能使用toString()
radix也是基准的意思 以10进制为基准转换为redix进制
如 var a = 123.9; var demo = a.toString();
var a = 10; var demo = a.toString(8); //demo结果为12
1.5 String(mix)
转换为字符串
1.6 Boolean()
转换为布尔类型
2 隐式类型转换
内部是调用显式的方法
2.1 isNaN ()
先调用Number进行转换 再将转换后的数和NaN比较
如 var a = isNaN(123); //结果为false Number转换为123 再与NaN比较不一样
var a = isNaN(“abc”); //结果为true Number转换为NaN 再与NaN比较相同
var a = isNaN(null); //结果为false Number转换为0 再与NaN比较不一样
2.2 ++ 与 —
调用Number进行转换
2.3 +正 -负
调用Number进行转换
如 var a = +”abc”; //此时a的值为NaN 类型是Number
2.4 +
调用string进行转换
2.5 - / %
调用Number转换
如 var a = “a” + 1; //此时a的值为NaN 类型是Number
2.6 && || !
调用Boolean转换
被认定为false的值* undefined, null, NaN, “”, 0, false
除此外的都为true
2.7 < > <= >=
调用Number转换 结果为布尔类型的
如 1<2<3; 结果为true 先对比1<2 为true 在比较true<3 true经过Number转换为1 1<3 结果为true
2.8 == !=
调用Number转换 结果为布尔类型的
undefined==null; 结果为true
NaN==NaN; 结果为false NaN和谁对比都是false 包括自己
1==true; 结果为true
3 不发生类型转换的
=== !==
两边一样才会相等
NaN和谁对比都是false 包括自己
1===true; 结果为false
例
输出结果是:
1;
false;
答对了;