如何转换成number?
’1‘ ->1 :
- number('1')===1
- parseInt('1',10)===1
- parseFloat('1.23') === 1.23
- '1' - 0 === 1
- + '1' === 1
- + '-1' === -1
- -(- '-1') === -1
- -(-'1') === 1
Javascript引擎不能识别大于0xFFFF的unicode字符
因为js出生于Unicode之前
类型转换
number object boolean string null undefined symbol七种数据类型
’+‘加号优先改变其他类型变成字符串类型
其他类型变成布尔有五个特殊值:
- number 只有0和NaN是false (0,nan)
- string 只有''空字符串是false('')
- null 是false (null)
- undefined 是false(nudefined)
- object 全部是true(包括数组和函数)
| number | string | boolean | symbol | null | undefined | object |
number | | toString | !! | | | | |
string | | | !! | | | | |
boolean | | toString | | | | | |
symbol | | | !! | | | | |
null | | tostring报错 ''+null | !! | | | | |
undefined | | 同null报错 ''+undefined | !! | | | | |
object | | 结果不想要 | !! | | | | |
注意:number作为基本类型是没有方法的,但是js发明者对其进行了操作,使得number可以暂时看做对象去用,但其实number声明之后并非一个对象,而只是一个数字类型
各类型API
内存图
垃圾回收
如果一个对象没有被引用,它就是垃圾,将会被回收。
判断是否是垃圾时,只要没有被指向,就是垃圾,可以画图来判断,更清晰。
深复制
深拷贝和浅拷贝
深拷贝
注:基本类型赋值就是深拷贝
注:对象赋值后值会随着改变,这种是浅拷贝