文章目录
typeof
number string boolean object undefined function
var num = true;
console.log(typeof(num));
//boolean
var a =[];
console.log(typeof(a));
//object
var b = null;
console.log(typeof(b));
//object
var c = undefined;
console.log(typeof(c));
//undefined
var d = function () {};
console.log(typeof(d));
//function
var e = 123;
console.log(typeof(e));
//number
类型转换:
显示类型转换
Number(mix)
parseInt(string,radix)
parseFloat(string)
toString(radix)
String(mix)
Boolean()
Number(mix) 【转化数据为数字】
var num = Number('123'); //通过Number(),将字符串'123',转化为数字123
console.log(typeof(num) + ':' + num);
//number : 123
var num = Number(null);
console.log(typeof(num) + ':' + num)
//number : 0
var num = Number(undefined);
console.log(typeof(num) + ':' + num)
//number : NaN
var num = Number('a');
console.log(typeof(num) + ':' + num)
//number : NaN
parseInt(string,radix) 【将数据转化为整形数据】
var num = parseInt(123.9);
console.log(typeof(num) + ':' + num)
//number : 123
var num = parseInt(undefined); //null、string、function、true、false
console.log(typeof(num) + ':' + num)
//number : NaN
var num = parseInt('10',16); //以16进制为基底,将‘10’转化为十进制的数,radix值为2 - 36
console.log(typeof(num) + ':' + num)
//number : 16
parseFloat(string) 【将数据转化为浮点型数据】
var num = parseFloat('123.9asd'); //读到第一个小数点后的第一个非数字位停止
console.log(typeof(num) + ':' + num)
//number : 123.9
toString(radix) 【将数据转化为字符串类型】
var demo = 123;
var num = demo.toString();
console.log(typeof(num) + ':' + num);
//string : 123
var demo = 123;
var num = demo.toString(2); //将123转化为2进制,括号中为目标进制
console.log(typeof(num) + ':' + num);
//string : 1111011
String(mix) 【将数据转化为字符串类型】
var str = String(123.9);
console.log(typeof(str) + ':' + str)
//string : 123.9
Boolean() 【将值转化为布尔类型】
var num = Boolean(true); //123、'asd'、function(){}
console.log(typeof(num) + ':' + num)
//Boolean : true
var num = Boolean(false); //null、undefined
console.log(typeof(num) + ':' + num)
//Boolean : true
隐式类型转换
isNaN()
++/-- +/-
+
- * / %
&& || !
< > <= >=
== !=
isNaN() 【判断括号中数据是否为NaN】
调用isNaN()时,系统会将括号中的数据进行Number(),所得结果和NaN比较,并返回true或false
++/–
var a = '123';
a ++;
console.log(typeof(a) + ':' + a);
//number : 124
在进行a ++时,系统进行Number(a),然后对数字123进行+1操作。
+
var a = 'asd';
a = a + 1;
console.log(typeof(a) + ':' + a);
//string : asd1
当进行a = a + 1;时,系统调用String(a),然后对字符串asd进行+1操作,结果为asd1
/ % * -
var a = 'asd';
a = a * 1;
console.log(typeof(a) + ':' + a);
//number : NaN
当进行a = a * 1;时,系统调用Number(a),结果为NaN
&& || !
调用Boolean(),进行隐式类型转化
< > <= >=
当字符串与数字类型比较,将字符串转化为数字,
== !=
var a = 1 == true;
console.log(typeof(a) + ':' + a);
//Boolean : true
=== !== 【不发生隐式类型转换的绝对等于,绝对不等于】
长得一样返回true,长得不一样返回false
console.log(undefined == null);
//true
console.log(NaN == NaN);
//false
console.log(typeof(typeof(a)));
//string