饥人谷技术博客

普通类型和对象的区别

2019-02-07  本文已影响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值:

方法二:连续取两次反

!!{}   //  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........

面试题:

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
上一篇 下一篇

猜你喜欢

热点阅读