欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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