美文网首页
JS 里的数据类型转换

JS 里的数据类型转换

作者: 遠_ | 来源:发表于2018-05-18 17:16 被阅读0次

    强制转换

        强制转换主要指使用Number、String和Boolean三个函数,手动将各种类型的值,分布转换成数字、字符串或者布尔值。

        1.Number()

            可以将任意类型的值转化成数值。

                方法: Number(x)

                            parseInt(x, 10)

                            parseFloat(x)

                            x - 0

                            +x

                        parseInt方法用于将字符串转为整数。

                        parseFloat方法用于将一个字符串转为浮点数。


        2.String()

            可以将任意类型的值转化成字符串

            (1)原始类型值

                数值:转为相应的字符串。

                字符串:转换后还是原来的值。

                布尔值:true转为字符串"true",false转为字符串"false"。

                undefined:转为字符串"undefined"。

                null:转为字符串"null"。

                    String(123)  //    "123"

                    String('abc')  //    "abc"

                    String(true)  //    "true"

                    String(undefined)  //    "undefined"

                    String(null)  //    "null"

                    x + ' '

            (2)对象        

                String方法的参数如果是对象,返回一个类型字符串;如果是数组,返回该数组的字符串形式。


        3.Boolean()

            可以将任意类型的值转为布尔值。

                方法:Boolean(x)

                            !!x

            除了以下五个值的转换结果为false,其他的值全部为true。

                undefined

                null

                0

                NaN

                ' '(空字符串)


    普通类型与对象的区别:

           数据区分为 Stack(栈内存) 和 Heap(堆内存)

                简单类型的数据直接存在 Stack 里   //number/string/null/undefined/boolean

                复杂类型的数据是把 Heap 地址存在 Stack 里   //object


    深复制

        var a = 1

        var b = a

        b = 2 //这个时候改变 b

        a 完全不受 b 的影响

        那么我们就说这是一个深复制    

    对于简单类型的数据来说,赋值就是深拷贝。

    对于复杂类型的数据(对象)来说,才要区分浅拷贝和深拷贝。


    浅拷贝

        var a = {name: 'frank'}

        var b = a    

        b.name = 'b'

        a.name === 'b' // true

    对 b 操作后,a 也变了

    什么是深拷贝了,就是对 Heap 内存进行完全的拷贝。


    相关文章

      网友评论

          本文标题:JS 里的数据类型转换

          本文链接:https://www.haomeiwen.com/subject/pqogdftx.html