js的七个数据类型:
number、string、boolean、symbol、null、undefined、object。
-
string类型转换:
toString
null和undefined两种类型不能用,会报错
object可以用,但是结果有问题,'[object Object]'
老司机写法: + ''
加空字符串 即可转换,加号发现左右某一边有字符串时会尝试将另一边也变成字符串
1 + '1' = 11 等价于 (1).toString() + '1'
全局方法: window.String()
-
boolean类型转换:
Boolean()
空字符串'',0,NaN,null,undefined是false,其他全是true,只要是对象就是true
老司机取反法:在前面加两个感叹号,即为取反再取反,转换为布尔
!!1
number类型转换:
Number('1')
parseInt('1',10) 全局函数,十进制 (parse:解析)
parseFloat('1.23') 浮点数
'1' - 0 减零法,最常见写法
+ '1' 取正法内存图:
JS的内存分为代码区和数据区,只研究数据区(声明的变量属于代码区)
Stack栈内存 Heap堆内存 数字 64位 字符 16位
简单的值直接存在Stack
复杂的值(object)先存在Heap,以地址形式存入Stack,这种关系称为引用
GC 垃圾回收:
如果一个对象没有被引用,就是垃圾,将被回收
IE6有bug:内部有联系的对象即使未被外部引用也不会回收-
深拷贝、浅拷贝
给b赋值a后,b变a就变则是浅拷贝,b变a不变是深拷贝