美文网首页饥人谷技术博客
普通类型和对象的区别

普通类型和对象的区别

作者: 不爱举铁的伪文青不是好前端 | 来源:发表于2019-02-07 17:08 被阅读4次
    1 其他类型变字符串

    方法一:String( )函数(这是一个全局函数)

    window.String(null) //  'null'
    window.String({}) // '[object Object]'
    

    方法二:x + " "(与空字符串相加)

    1 + '' // "1"
    true + '' //  "true"
    null + '' //  "null"
    
    2 其他类型变布尔

    方法一:Boolean( )函数(全局函数)

    Boolean(0) // false
    Boolean('') // false
    Boolean({}) // true(对象全部都是true 包括数组和函数)
    

    五个falsely值:

    • number里:0 NaN
    • string里 :'' "" (空字符串)
    • undefined
    • null

    方法二:连续取两次反

    !!{}   //  true
    !!NaN  // false
    !!'!'  //   true
    
    3 其他类型转数字

    方法一:函数

    Number('1') === 1
    parseInt('1',10) === 1
    parseFloat('1.23') === 1.23
    

    方法二:

    '1' - 0 === 1   // 减0
    + '1.23' === 1.23  // 取正
    + '-1' === -1  
    

    parse:解析

    parseInt('s')   // NaN
    parseInt('12s')  //  12  (从头开始能解析多少解析多少)
    parseInt('011')  // 11
    parseInt('011',8)  // 9 (八进制)
    parseInt('011',10)  // 11
    
    4 其他类型变对象

    内存图:

    ktwYQO.md.png
    先经过变量提升var a,b,c,d........
    • 简单类型存入Stack
    • 复杂类型存入Heap ,地址存入Stack

    面试题:

    var a={name:'a'}
    b=a
    b={'name':'b'}
    a.name   //  'a'
    

    ktw7lT.md.png

    垃圾回收:
    如果一个对象没有被引用,它就是垃圾,将被回收
    var a={name:'a'}
    var b={name:'b'}
    a=b

    kt0pp6.md.png

    相关文章

      网友评论

        本文标题:普通类型和对象的区别

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