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 其他类型变对象
![](https://img.haomeiwen.com/i14793235/824bbfdb33684ad5.png)
先经过变量提升var a,b,c,d........
- 简单类型存入Stack
- 复杂类型存入Heap ,地址存入Stack
面试题:
var a={name:'a'}
b=a
b={'name':'b'}
a.name // 'a'
![](https://img.haomeiwen.com/i14793235/4145b94f7296314d.png)
垃圾回收:
如果一个对象没有被引用,它就是垃圾,将被回收
var a={name:'a'}
var b={name:'b'}
a=b
![](https://img.haomeiwen.com/i14793235/854017c1a6cfb698.png)
网友评论