类型转化

发布时间:2019-08-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了类型转化脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

类型转化

javascript


类型转化

最新的 ecmascript 标准定义了7种数据类型
原始类型:Boolean、Null、Undefined、NumberString、Symbol「ES6 新增」 对象:Object

数据类型

  • 显式类型转换 「手动执行」

    • Number 函数

      1. 原始类型转换
          - 数值:转换后还是原来的值。
          - 字符串:如果可以被解析为数值,则转换为相应的数值,负责得到 NaN。空字符串转为 0。
          - 布尔值:ture 转为 1false 转为 0。
          - undefined:转为NaN。
          - null:转成 02. 对象类型转化
          - 先调用对象自身的 valueOf  方法,如果该方法返回原始类型的值「数值、字符串和布尔值」,则直接对该值使用 Number 方法,不再进行后续步骤。
          - 如果 valueOf 方法返回符合类型的值,再调用对象自身的 toString 方法,如果 toString 方法返回原始类型的值,则对该值使用 Number 方法,不再进行后续步骤。如果 toString 方法返回复合类型的值,则报错。
    • String 函数

      1. 原始类型转换
          - 数值:转为相应的字符串。
          - 字符串:转换后还是原来的值。
          - 布尔值:ture 转为「ture」,false 转为「false」。
          - undefined:转为「undefined」。
          - null:转为「null」。
      2. 对象类型转化    
    • Boolean 函数

      1. 原始类型转换
          - undefined:
          - null:
          - -0:
          - +0:
          - NaN:
          - ''空字符串
          - 以上全部转化为 false,其他都转换为 ture。
      2. 对象类型转化    
          - 先调用对象自身的 toString  方法,如果该方法返回原始类型的值,则直接对该值使用 String 方法,不再进行后续步骤。
          - 如果 toString 方法返回符合类型的值,再调用对象自身的 valueOf 方法,如果 valueOf 方法返回原始类型的值,则对该值使用 String 方法,不再进行后续步骤。如果 valueOf 方法返回复合类型的值,则报错。
  • 隐式类型转换 「程序内部执行」

表达式 返回值
typeof undefined 'undefined'
tyPEof null 'object'
typeof true 'boolean'
typeof 123 'number'
typeof "abc" 'string'
typeof function() {} 'function'
typeof {} 'object'
typeof [] 'object'
typeof unknownVARiable 'undefined'

实例:

<!DOCTYPE htML>
<html>

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <title>类型转换</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="main.js"></script>
</head>

<body>
    <script type="text/javascript">
        // Number 函数:转换成数值
        // 转化后还是原来的值
        console.log(Number(324)); // 324
        // 如果可以被解析为数值,则转换为相应的数值,负责得到 NaN。空字符串转为 0。
        console.log(Number("324")); // 3224

        console.log(Number("324abc")); // NaN

        console.log(Number("")); // 0
        // ture 转为 1,false 转为 0。
        console.log(Number(false)); // 0
        // 转为NaN
        console.log(Number(undefined)); // NaN
        // 转为0
        console.log(Number(null)); // 0
        var a = {
            a: 1
        }
        console.log('a', Number({
            a: 1
        }));
    </script>

    <script type="text/javascript">
        //String  函数
        // 数值:转为相应的字符串。
        console.log(String(123)); // "123"

        // 字符串:转换后还是原来的值。
        console.log(String("abc")); // "abc"

        // 布尔值:ture 转为「ture」,false 转为「false」。
        console.log(String(true)); // "true"

        // undefined:转为「undefined」。
        console.log(String(undefined)); // "undefined"

        // null:转为「null」。
        console.log(String(null)); // "null"

        var b = {
            b: 1,
            toString: function () {
                return {
                    b: 2,
                };
            },
            valueOf: function () {
                return 'b';
            },
        };
        console.log('b', String(b));
    </script>

    <script type="text/javascript">
        // 以下六个值的转化结果为false,其他的值全部为true。
        // undefined
        // null
        // -0
        // +0
        // NaN
        // ''(空字符串)
        console.log(Boolean(undefined)); // false

        console.log(Boolean(null)); // false

        console.log(Boolean(0)); // false

        console.log(Boolean(NaN)); // false

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

        var b = {
            b: 1,
            toString: function () {
                return {
                    b: 2,
                };
            },
            valueOf: function () {
                return 'b';
            },
        };
        console.log('b', String(b));
    </script>
</body>

</html>

脚本宝典总结

以上是脚本宝典为你收集整理的类型转化全部内容,希望文章能够帮你解决类型转化所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。