javascript强制类型转换

2019-11-24  本文已影响0人  ssttIsme

javascript强制类型转换

一、转换为数值类型

Number(参数) 把任何类型转换为数值类型
A.如果是布尔值,false为0,true为1

    var a=true;
    document.write(Number(a)); 输出1
    a=false;
    document.write(Number(a)); 输出0

B.如果是数字转换为本身,将无意义的后导0去掉

    var b=123.3120;
    document.write(Number(b)); 输出123.312

C.如果是null转换为0

    document.write(Number(null)); 输出0

D.如果是undefined转换为NaN

    var ud;
    document.write(Number(ud)); 输出NaN

E.如果是对象则会先调用对象的 valueOf()方法,如果valueOf()方法返回的是NaN,然后再调用对象的toString()方法

    var obj1={
        toString:function () {
            return 5;
        }
    };
    document.write(Number(obj1)); 输出5
    var obj1={
        toString:function () {
            return 5;
        },
        valueOf:function () {
            return 2;
        }
    };
    document.write(Number(obj1)); 输出2

F.如果是字符串
1.如果字符串当中只有数字,将转换为10进制(忽略前导0和后导0)

    document.write(Number("01234560.0")); 输出1234560

2.如果是有效的规范的浮点型,将转换为浮点值(忽略前导0和后导0)

    document.write(Number("01234.0560")); 输出1234.056

3.如果是空字符串则转换为0

    document.write(Number("")); 输出0

4.如果是其他的值,返回NaN

    document.write(Number("64px")); 输出NaN

parseInt(参数1,参数2) 将字符串转换为整数
A.如果一个字符串只包含数字,则以10进制的方式转换为整型。
B.会自动忽略字符串前面的空格,直到找到第一个非空的数值字符串,直到解析到第一个非数值的字符串结束
C.如果字符串的第一个字符不是空格、数字、-,那么返回NaN
D.参数1
八进制 十进制 十六进制
参数2
控制输出模式 2-32之间的数字

    document.write(parseInt("01330"));输出1330
    document.write(parseInt(" -1234abc580")); 输出-1234
    document.write(parseInt("a1234")); 输出NaN
    document.write(parseInt(011)); 输出9
    document.write(parseInt(0x11)); 输出17
    document.write(parseInt(10,8)); 输出8

parseFloat()将字符串转化为浮点数
A.字符串当中的.只有第一个有效,其他的无效

   document.write(parseFloat(" -1.5.7")); 输出-1.5

B.如果字符串是一个有效的整数,则返回整数,不会返回浮点数

    document.write(parseFloat("2.0")); 输出2

二、转换为字符串类型

1.String(参数) 可以将任何的类型转换为字符串
null和undefined 也都会转换成字符串,分别是null和undefined
布尔类型 会返回true和false

    document.write(String(null)); 输出null
    document.write(String(undefined)); 输出undefined
    document.write(typeof String(null)); 输出string
    document.write(typeof String(undefined)); 输出string
    document.write(String(true)); 输出true
    document.write(typeof String(true)); 输出string

2.toString()不是全局函数,是每个对象自带的方法
对象.toString()作用是将对象以字符串的方式来表示
数组.toString()返回由逗号分割的字符串
Boolean.toString()换回true或false
String.toString()返回本身
Number.toString(参数)返回本身的字符串形式 输出模式2-32
注意:null和undefined没有toString()方法

    var arr=[1,2,3,4];
    document.write(arr.toString()); 输出1,2,3,4

    document.write(true.toString()); 输出true
    var num=5;
    document.write(num.toString(2)); 输出101
    var num=14;
    document.write(num.toString(16)); 输出e

三、转换为布尔类型

Boolean()可以将任何类型的值转换为布尔值
转换为假:"",0,NaN,undefined,false
其他的全部都转换为真

    document.write(Boolean(null));  输出false
    document.write(Boolean("hello")); 输出true
    document.write(Boolean("")); 输出false
    document.write(Boolean(0)); 输出false
上一篇下一篇

猜你喜欢

热点阅读