JavaScript中类型转换 typeof
程序员文章站
2022-06-04 21:49:24
...
typeof的返回值
1.number
2.string
3.boolean
4.object (null...)
5.function
6.undefined
类型转换
1.显示类型转换
(1)Number()
Number(null)-->0
Number(undefined)-->NaN
将括号里面的转换为数字类型,如果不是数字转换为NaN
(2)parseInt()
将括号里面的转换为整型数字,小数点后面的直接去掉,parseInt(true).....都转换为NaN
var demo = "10";
var num = parseInt(demo,16);
以16进制为基底进行转换为10进制
var demo = "123abc";
var num = parseInt(demo);
num = 123;
parseInt从数字位开始看,到非数字位截止
(3)parseFloat()
与parseInt()基本相同,从数字位开始,到第一个小数点后面非数字位截止
var demo = "123.1abd";
var num = parseInt(demo);
num = 123.1
(4)toString()
var demo = 123;
var num = demo.toString();
将数字123转换为字符串"123"
(undefined,null不可以使用toString方法)
也可以实现进制之间的转换
var demo = 10;
var num = demo.toString(8);
将十进制的10,转换为八进制num = 12
(5)String()
将括号里面的转换位字符串
(6)Boolean()
将括号里面转换为布尔值(true,false),除了(undefined,null,NaN,"",0,false)这6个值转换为false,其他都转换为true
隐式类型转换
隐式类型转换内部调用显示类型转换的方法
(1)isNaN() -->Number()
先将括号里的变量用Number方法进行转换,然后再将转换的结果与NaN进行比对,是就返回true,不是就返回false
(2)++/-- +/- --Number()
调用的也是Number方法,转换后该值的类型为number
(3)+
当+号两边有一个为字符串类型时就调用String()方法
(4)-*/% -- Number()
"a" * 1 --->Number("a") * Number(1) --->NaN *1
转换后的类型为number
(5)&&||!
(6)< > <= >=
当字符串与数字比较时,都转换为数字比较
1>2>3 返回结果为false
1>2的结果为false,再将false转换为0,0>3结果为false
(7)== !=
特殊(undefiner == null)
不发生类型转换
===和!==(绝对等于和绝对不等于)
补充
当a未定义
typeof(typeof(a))
最终的返回结果为string
最里面的typeof(a)返回结果为"undefined"字符串类型的undefined