1.tyoeof:
typeof可以帮助我们区分数据类型:
数据类型有:number string boolean underfined object function这6种
example:
var num = 123;
console.log(typeof(num));
数据类型为number
2.类型转换:
类型转换又分为显示类型转换和隐式类型转换:
1.显示类型转换;
以下几种代表显示类型转换:Number(mix) , parseInt(string,radix) , parseFloat(string) ,Boolean() ,
toString(radix), string()
Number(mix)类型:将类型转化为数字。
parseInt(string,radix):转化为整型,一旦遇到非数字的就马上中止。
其中它还有一个功能就是转换数字的进制,radix就是它要转化进制的基底,radix的区域范围是2-36
example:
var demo = "123";
var num = parseInt(demo,16);
parseInt(demo,radix);---->radux,基底为16进制.
输出结果为291;
parseFloat(string):从数字类开始看,看到除了第一点的非数字类中止
String()–>转化为字符串类型
Boolean() -->转化为布尔类型
toString(radix)–>转化为字符串类型,但是有两种类型不能转化,就是undefined和null;转化基底为radix的数。
example:
var num = 10000;
var test = parseInt(num ,2);
console.log(test. toString(16));
结果为10
隐式类型转换:又分为以下几种:
1.isNaN:
console.log(isNaN(null));
首先用Number判断它的类型是不是NaN类型,如果是就true,不是就false
结果为false
2.++/–
这里我就用++作为实例,–的原理也是一样的;
a++;---->调用Number();先把a转化为数字类型再进行运算;
console.log(a);
var a = "abc";
a++;-->调用Number();
console.log(a);
// 运行结果为NaN,因为"abc"的类型是NaN;
+/-(一元正负)
var a = -“abc”;–>调用Number()
console.log(a + “:” +typeof(a));
+号的隐式类型转换:
var a = "b" + 1;
// -->当加号两侧其中有一侧是字符串的话,它就会调用的是String();然后整个类型都会变成字符串类型;
console.log(typeof(a) + ":" +a);
结果为string类型,a=b1;
注意:
undefined==null-->true
唯一一个连自己都不等于的:NaN;
绝对等于 ===
和绝对不等于!==
,左右两侧为一样才相等,除了NaN,不发生类型转换。