任意类型转字符串
1.用String(转换内容):
String(1)
"1"
String(true)
"true"
String(null)
"null"
String(undefined)
"unedfined"
String({})
"[object object]"
2.内容.tuString()...(此方法null跟unedfined控制台会报错)
(1).tuString()
"1"
true.toString()
"true"
({}).toString()
"[object object]"
3.内容+ ""也能转换字符串:
1+""
"1"
true +""
"true"
null +""
"null"
undefined + ""
"undefined"
var x= {}
x + ""
"[object object]"
任意类型转数字
1.Number(数字)(以下“f”没有值的情况是:(NaN))
Number("f")
NaN
Number("2")
2.parseint(内容,进制单位)
parseInt("56",8)
46
parseInt("56",10)
56
parseInt("56",16)
86
3.parseFloat("小数")
parseFloat("123.321")
123.321
4.内容 -0
"1" - 0
1
"tuer" -0
NaN
5.+内容
+ "1"
1
任意类型转布尔
1.Boolean("内容")
Boolean(Accelerometer)
true
2.!!内容
!!abc
true
3.以下5个false 值(除了这5个值其余的转换为true)
Boolean (0)
false
Boolean(NaN)
false
Boolean(null)
false
Boolean("")
false
Boolean(undefined)
false
内存图解
1.JS 引擎将内存分为代码区和数据区
2.数据区分为 Stack(栈内存) 和 Heap(堆内存)
- 简单类型(6种类型)的数据直接存在 Stack 里
- 复杂类型(object)的数据是把 Heap 地址存在 Stack 里
深复制与浅复制
1深复制:
var a = 1
var b = a
b = 2 //这个时候改变 b
a 完全不受 b 的影响
那么我们就说这是一个深复制
2.浅复制:
var a = {name: 'xyb'}
var b = a
b.name = 'b' // b 操作后,a 也变了
a.name === 'b' // true
a受b影响也变了,那么这就是一个浅复制。
网友评论