首页 > 编程语言 > 详细

Web全栈工程师之路(三)——JavaScript篇(三)——强制类型转换与进制

时间:2020-05-07 16:27:42      阅读:48      评论:0      收藏:0      [点我收藏+]

以下是html代码,个人建议放在IDE里运行,边看效果,边学习~ 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>JS初步(三)——强制类型转换与进制</title>
    <script>
        /* 
            强制类型转换
                - 指将一个数据类型强制转换为其它的数据类型  
        */

        /* 
            转换为String类型
                方式一:
                    - 调用被转换数据类型的toString()方法
                    - 该方法不会影响原变量,仅仅会讲转换的结果返回
                    - 值得注意的是当变量值为null或者是undefined时,强制转换会报错
                      也就是它俩没有toString()方法
                
                方式二:
                    - 调用String()函数,并将转换的数据作为参数传递给函数
                    - 这个方法可以将null和undefined转化为字符串
                    - 对于Number和Boolean实际上就是调用的tostring()方法
                      但是对于null和undefined,就不会调用toString()方法
                      它会将null直接转换为"null",undefined转换为"undefined"
        */
        var a = 123;

        // 方式一:调用a的toString方法,进行强制转换
        var b = a.toString(); //讲toString()的返回值赋给b

        console.log(typeof a); //输出值为number
        console.log(a); //输出值为数值123
        console.log(typeof b); //输出值为string
        console.log(b); //输出值为字符串123

        //方式二:调用String()函数,将a转换为字符串
        a = String(a);
        console.log(typeof a); //输出值为string
        console.log(a); //输出值为字符串123

        /* 
            转换为number类型
                方式一:
                    - 使用Number()函数
                        - 字符串 --> 数字
                            1.如果是纯数字的字符串,直接转换为数字
                            2.如果字符串中存在非数字的内容,则转换为NaN
                            3.如果字符串为空(空串),则转换为数字0
                        - 布尔值 --> 数字
                            true 转成1
                            false 转成0
                        - null --> 数字
                            null 转成0
                        - undefined --> 数字
                            undefined 转成NaN
                
                方式二:
                    - 这种方式专门用来对付字符串
                    - parseInt() 把一个字符串转换为一个整数(也只能识别整数,小数点后面的不会考虑)
                      它可以将一个字符串中的有效的整数内容取出来转化为number,但是会造成信息丢失
                      在面对"b123.12bds123sdf"这种类型的字符串时,由于首字母不是数字,所以直接返回NaN
                      换而言之,首字母必须是数字才行,函数一旦读取到字符或者小数点(小数点仅针对于parseInt),就会自动停止
                    - parseFloat() 把一个字符串转换为一个浮点数,相比parseInt可以额外取出小数
                    - 如果对非String的变量使用上述两种函数,则它们会先将其转换为String,然后再操作
        */
        var a = "abc";
        //方式一:调用Number()函数,将a转换为数字
        a = Number(a);

        console.log(typeof a); //输出值为number
        console.log(a); //输出值为NaN

        a = true;

        a = Number(a);

        console.log(typeof a); //输出值为number
        console.log(a); //输出值为1

        a = "123px"
        //方式二:调用parseInt()函数,将a转化为数字
        a = parseInt(a);
        
        console.log(typeof a); //输出值为number
        console.log(a); //输出值为123

        /* 
            在js中,如果需要表示16进制的数字,需要以0x开头,八进制以0开头,二进制以0b开头
            但不是所有的浏览器都支持二进制的这种写法
        */
        a = 0xff; //255
        a = 070; //56
        a = "070" //向这种字符串有些浏览器会当成8进制、10进制解析
        a = parseInt(a,10); //这里后面的10表示按10进制解析

        /* 
            转换为Boolean类型
                - 使用Boolean()函数
                    - 数字 --> 布尔
                        - 除了0和NaN,其它都是true
                    - 字符串 --> 布尔
                        - 除了空串,其它都是true
                    - undefined、null --> 布尔
                        - 都是false
                    - object --> 布尔
                        - 都是true
        */

        var a = 123; //a=0时转化后值为false

        a = Boolean(a);

        console.log(typeof a); //输出值为boolean
        console.log(a); //输出值为true

        var a = undefined; //NaN、null也一样

        a = Boolean(a);

        console.log(typeof a); //输出值为boolean
        console.log(a); //输出值为false

        var a = ""; //空串为false

        a = Boolean(a);

        console.log(typeof a); //输出值为boolean
        console.log(a); //输出值为false
    </script>
</head>
<body>
    
</body>
</html>

 

Web全栈工程师之路(三)——JavaScript篇(三)——强制类型转换与进制

原文:https://www.cnblogs.com/lyrebirth-world/p/12843737.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!