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

JS 里的数据类型转换

作者: 小白兔养家 | 来源:发表于2018-09-15 16:23 被阅读0次
    number String boolean Symbol null undefined object
    number toString
    '' +
    Boolean()
    String Number('1')
    parseInt('1',10)
    parseFloat('1.23')
    '1' + 0
    + '1'
    Boolean()
    boolean toString
    '' +
    Symbol !! +
    null 报错
    '' +
    !! +
    undefined 报错
    '' +
    !! +
    object "[object Object]"
    '' +
    String()
    !! +

    将其他的数据类型转换为String

    // toString
    1 + 1 // 2
    (1).toString() + '1' // '11'
    1 + '1'  // '11'
    window.String(1)  // '1'
    

    将其他的数据类型转换成Number

    Number('1') 
    parseInt('1',10) 
    parseFloat('1.23')
    '1' + 0 
    + '1'
    

    将其他的数据类型转换为Boolean

    // Boolean()
    Boolean(1)  // true
    Boolean(0) // false
    Boolean('') // false
    Boolean(' ') // true
    Boolean('1') // true
    Boolean(null) // false
    Boolean(undefined) //false
    Boolean({}) // true
    Boolean({name: 'frank'})  // true
    // !!
    !true // false
    !!true // true
    !! 1 // true
    !! 0 // false
    !! '' // false
    !! '    '  // true
    !! {}  // true
    !! {name: 'frank'} // true
    !! null // false
    

    五个默认为false的falsy值:0,NaN,'',null,undefined
    任意对象转换为Boolean均为true

    // falsy值
    number: 0 / NaN
    String: ''
    null: 都是false
    undefined: 都是false
    object: 都是true
    

    Symbol null undefined

    需要转为的情况不常见,略

    object

    内存:
    JS 引擎将内存分为代码区数据区, 我们只研究数据区。 数据区分为 Stack(栈内存)Heap(堆内存)。 简单类型的数据(如Number,string等)直接存在 Stack 里, 复杂类型的数据(object对象)是把 Heap 地址存在 Stack 里。
    基本类型在栈内存中,对象是复杂类型在堆内存中。

    对象的存储方式:
    object 是对象的引用,对象的存储方式是在stack内存存储一个地址,形成对对象的引用,地址指向heap内存的某个位置。

    垃圾回收:
    如果一个对象没有被引用,它就是垃圾,将被回收。

    深拷贝VS浅拷贝概念

    深拷贝:
    基本类型赋值就是深拷贝

    // b变不影响a
    var a = 1
    var b = a
    b = 2
    a  // 1
    

    浅拷贝

    // b变致a变
    var a = {name: 'a'}
    var b = a
    b.name = 'b'
    a.name // 也是 'b'
    

    相关文章

      网友评论

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

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