1.JavaScript的类型转换
1.1 任意类型转字符串String
String(x)
-
x.toString()
null
、undefined
类型会报错 -
x + ' '
与空字符串相加
1.2任意类型转数字number
-
number
('1') === 1` parseInt('1', 10) === 1
parseFloat('123') === 1.23
'1' - 0 === 1
-
+ '1'
取正
1.3任意类型转布尔boolean
Boolean()
-
!!x
五个falsy值0 NaN ' ' null undefined
2.深复制与浅复制
var a = 1
var b = a
b = 2 //这个时候改变b
a完全不受b影响,我们就说这是一个深复制
对于简单类型的数据来说,赋值就是深拷贝。
对于复杂类型的数据(对象)来说,才要区分浅拷贝和深拷贝
这是一个浅拷贝的例子
var a = {name: 'frank'}
var b = a
b.name = 'b'
a.name === 'b' //true
因为我们对b操作后,a也变了
什么是深拷贝就是对Heap内存进行完全的拷贝
var a = {name: 'frank'}
var b = deepclone(a) //deepclone还不知如何实现
b.name = 'b'
a.name === 'frank'//ture
网友评论