typeof操作符(区分每种数据是什么类型)
用法:typeof(123) 或 typeof 123
返回值类型:字符串
数据类型:number、string、boolean、object //引用值(数组、null)都返回object 、undefined、function…
类型转换
1、显式类型转换
Number(mix) :转换为数字,undefined和字母字符串不能转换为数字,null转换为0
parseInt(string,radix) :parseInt(123abc)强制转换为整型,从数字位往后看,看到非数字位截至;以目标进制为基底,转换为10进制
var demo = “b”;
var num = parseInt(demo,16);//以16(radix值)进制为基底,转换为十进制
parseFloat(string) :强制转换为浮点型,从数字位往后看,看到除小数点外的非数字位截至
toString(radix) :转换为字符串,undefined和null不可用,报错;以10进制为基底转换为radix进制
var demo = 123;
var num = demo.toString();
String(mix) :转换为字符串
Boolean() :转换为布尔型,空串为false
2、隐式类型转换
isNaN() :判断是否是NaN,隐式调用Number()得出结果与NaN比对,返回true或false
++ 、- -、 + / -(正负) :隐式调用Number(),即使转不成数字,类型一定变成数字
+ :加号两侧有一个为字符串,则隐式调用String()将两侧都变成字符串
- 、 * 、/ 、% :隐式调用Number(),NaN*1=NaN,类型为number
&& 、 || 、 ! :隐式调用boolean(),再进行判断
< 、 > 、 <= 、>= :有数字的会隐式调用Number()全部转换为数字
==、!= :隐式调用boolean(),再进行判断
NaN == NaN ---->false
null == 0 ---->false
undefined == null ->true
不发生类型转换
===(绝对等于) !==(绝对不等于)
1 === 1 ->true
1 === “1” ->false (长得不一样就不等于)
1 !== “1” ->true
1 !== 1 ->false
NaN ===NaN ->false
//作业:
alert(typeof(a));--------------------------->undefined
alert(typeof(undefined));------------------->undefined
alert(typeof(NaN));------------------------->number
alert(typeof(null));------------------------>object
var a = “123abc”;
alert(typeof(+a));-------------------------->number
alert(typeof(!!a));------------------------->boolean
alert(typeof(a + “ ”));--------------------->string
alert(1 == “1”);---------------------------->true
alert(NaN == NaN);-------------------------->false
alert(NaN == undefined);-------------------->false
alert(“11” + 11);--------------------------->1111
alert(1 === “1”);--------------------------->false
alert(parseInt(“123abc”));------------------>123
var num = 123123.345789;
alert(num.toFixed(3));---------------------->123123.346//保留小数点后三位,四舍五入
typeof(typeof(a));-------------------------->string