JS|JS 里的数据类型转换
目录
- 类型转换
- 内存图
- 深拷贝VS浅拷贝
![JS|JS 里的数据类型转换](https://img.it610.com/image/info10/60cc097e9d8a463c941dfd4ab6508531.jpg)
文章图片
JS的7种数据类型 类型转换 一、其他类型转字符串:
3种方式:
1.
xxx.toString()
—— 常规方法var n =1
n.toString()
"1"
var object ={name:'ajing'}
object.toString()
"[object Object]" //对象的toString方法,得不到我们想要的
null
不行,报错(Cannot read property 'toString' of null)undefined
不行,报错(Cannot read property 'toString' of undefined)2.
xxx
+ ''
—— 老司机方法(推荐)1 + ''
'1'
//
null + ''
"null"
//
true + ''
'true'
//
var obj = {}
obj + ''
"[object Object]"
1 + '1' //等同于(1).toString() + '1'
'11'
3.
window.String(xxx)
var n=1
window.String(1)
"1"window.String({})
"[object Object]"window.String(null)
"null"
二、其他类型转boolean
1.
Boolcan(xxx)
—— 常规方法Boolean(1)
trueBoolean(0)
falseBoolean('')
falseBoolean(' ')
true
2.
!!xxx
—— 老司机方法!!{}
true!!{name:'ajing'}
true
5个falsy值:number中(0 NaN)、string中('')、null、undefined
object全都为true
三、其他类型转number
![JS|JS 里的数据类型转换](https://img.it610.com/image/info10/97d6dc42dfd344bdb500b8254847e69b.jpg)
文章图片
来自方姐
内存图 浏览器中JS占的内存分两个区域——代码区和数据区,数据区又分两个区——Stack(栈内存)和Heap(堆内存)
数字64位 字符16位
![JS|JS 里的数据类型转换](https://img.it610.com/image/info10/c5206b03ef1b4e21ae9788bd9a22bb87.jpg)
文章图片
内存值分布
【JS|JS 里的数据类型转换】用内存图分析解决问题
![JS|JS 里的数据类型转换](https://img.it610.com/image/info10/835638d8a2454284b489d0fb17540f07.jpg)
文章图片
问题1
![JS|JS 里的数据类型转换](https://img.it610.com/image/info10/526f6f085e34458486ce4ccb57f9dd5f.jpg)
文章图片
问题2
关于垃圾回收
如果一个对象没有被引用,它就是垃圾,将被回收。
内存垃圾回收题
![JS|JS 里的数据类型转换](https://img.it610.com/image/info10/2796251f510d49a6b0a628f4c7fcbb44.jpg)
文章图片
function要不要回收?
![JS|JS 里的数据类型转换](https://img.it610.com/image/info10/2b1debd6d854447799db03c663d95921.jpg)
文章图片
图解 深拷贝VS浅拷贝 深拷贝(a赋值给b,b变a不变),基本类型的赋值就是深拷贝
浅拷贝(a赋值给b,b变a也变)
![JS|JS 里的数据类型转换](https://img.it610.com/image/info10/333884eb130f41b4af749cab227fa4f6.jpg)
文章图片
浅拷贝 end
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- Docker应用:容器间通信与Mariadb数据库主从复制