JS 里的数据类型转换

js的七个数据类型:

number、string、boolean、symbol、null、undefined、object。

  1. string类型转换:
    toString
    null和undefined两种类型不能用,会报错
    object可以用,但是结果有问题,'[object Object]'
    老司机写法: + ''
    加空字符串 即可转换,加号发现左右某一边有字符串时会尝试将另一边也变成字符串
    1 + '1' = 11 等价于 (1).toString() + '1'
    全局方法: window.String()

    示例

  2. boolean类型转换:
    Boolean()
    空字符串'',0,NaN,null,undefined是false,其他全是true,只要是对象就是true
    老司机取反法:在前面加两个感叹号,即为取反再取反,转换为布尔
    !!1

    示例

  3. number类型转换:
    Number('1')
    parseInt('1',10) 全局函数,十进制 (parse:解析)
    parseFloat('1.23') 浮点数
    '1' - 0 减零法,最常见写法
    + '1' 取正法

  4. 内存图:

JS的内存分为代码区和数据区,只研究数据区(声明的变量属于代码区)

内存图示例

Stack栈内存 Heap堆内存 数字 64位 字符 16位
简单的值直接存在Stack
复杂的值(object)先存在Heap,以地址形式存入Stack,这种关系称为引用

a=1

'a'

'b'

name:'a'

  1. GC 垃圾回收:
    如果一个对象没有被引用,就是垃圾,将被回收
    IE6有bug:内部有联系的对象即使未被外部引用也不会回收

  2. 深拷贝、浅拷贝
    给b赋值a后,b变a就变则是浅拷贝,b变a不变是深拷贝


    深拷贝

    浅拷贝
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容