Javascript漂流记(上)__数据类型转换

今天一个菜,菜是好菜,就是硬了点儿。

先认识个新朋友:typeof()

typeof()上场就放出number、string、boolean、undefined、object、function六个大招。

然并卵,耍来耍去都是字符串类型。

跟二哥有什么关系呢?

传说Javascript有两件法宝:显示类型转换隐式类型转换

索性就把typeof()拿来鉴宝吧。

数据不好好待着,换来换去换啥呢?

旧彩电换洗脸盆,当然是用啊!!!

一、显示类型转换:

        Number(demo):尽量把demo转换成数字,转不成的就去当number类型的NaN。例如undefined 

        parseInt(demo):把demo转换成整数

        parseInt(demo, radix):以radix(2-36)进制为基底,把demo转换成十进制数字

        parseFloat(demo):把demo转换成浮点数

            console.log(Number(undefined));//NaN
            console.log(Number(false));//0
            console.log(parseInt('100px'));//100
            console.log(parseInt('123.3.5'));//123
            console.log(parseInt('a15', 16));//2581
            console.log(parseFloat('123.3.5'));//123.3
            var num = 123.3567148
            console.log(num.toFixed(3));//123.357
            //都是number类型

        String(demo) : 把demo转换成字符串

        demo.toString(radix) : 把demo转换成radix进制的数,null / undefined不争气,不能调用toString

            var demo = 12345;
            console.log(String(demo));//12345
            console.log(demo.toString(16));//3039
            //都是字符串类型

        Boolean(demo) :把demo转换成布尔值

            console.log(Boolean(undefined));//false
            console.log(Boolean(' '));//true

二、隐式类型转换

        isNaN(demo):Number(demo)转换后的结果和NaN比对,返回布尔值

        ++/--    +/-(一元正负)    -*/%:都隐式调用Number()

        +加号:调用String()

            console.log(isNaN(undefined));//true
            console.log(isNaN('123abc'));//true
            console.log(isNaN('123'));//false
            console.log(1 + '2' + '2');//122
            console.log(1 + +'2' + '2');//32
            console.log(1 + -'1' + '2');//02
            console.log(+'1' + '1' + '2');//112
            console.log('A' - 'B' + '2');//NaN2
            console.log(typeof('A' - 'B' + 2));//NaN,number类型

        &&、||、!:调用Boolean()

            var str = false + 1;
            console.log(str);
            var demo = false == 1;
            console.log(demo);
            if(typeof(a)&&-true + (+undefined) + ''){
                console.log('基础扎实');
            }
            if(11 + '11' * 2 == 33){
                console.log('基础扎实');
            }
            !!' ' + !!'' - !!false || console.log('你觉得能出来,你就是猪!');

        特殊的<、>、<=、>=、==、!=

三、不发生类型转换的:===、!==

 

以上内容属二哥原创,整理自 "渡一教育Javascript课程" ,一个值得推荐的"渡一教育"。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值