普通类型和对象的区别

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 其他类型变对象

内存图:


先经过变量提升var a,b,c,d........

  • 简单类型存入Stack
  • 复杂类型存入Heap ,地址存入Stack

面试题:

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容