首页 >web前端 >js教程 >简介js基础数据类型和引用类型以及深浅拷贝和内存分配问题

简介js基础数据类型和引用类型以及深浅拷贝和内存分配问题

巴扎黑
巴扎黑原创
2017-09-04 10:24:451353浏览

下面小编就为大家带来一篇浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

js 深浅拷贝问题

浅拷贝一般指的是基本类型的复制

深拷贝一般指引用类型的拷贝,把引用类型的值也拷贝出来

举例

h5的sessionStorage只能存放字符串,所以要存储json时就要把json使用JSON.stringify()把json转换成string,然后再用JSON.parse()转换成json数据

缺点:JSON.parse和JSON.stringify只支持IE9+以上

解决这个问题可以使用深度比那里拷贝方法

js 中内存分配问题(堆和栈)

js中基本类型类型一般是存储在栈中的。这些类型在内存中分别占有固定大小的空间,他们的值保存在栈空间,我们通过按值来访问的。

引用类型是大小不固定的数据,但是他们的地址大小是固定的,所以把地址存在栈中而值存在堆中

1、栈内存:存放基本类型。 堆内存:存放引用类型(在栈内存中存一个基本类型值保存对象在堆内存中的地址,用于引用这个对象。)

2、基本类型在当前执行环境结束时销毁,而引用类型不会随执行环境结束而销毁,只有当所有引用它的变量不存在时这个对象才被垃圾回收机制回收。

js 基础数据类型和引用类型

基础数据类型包括 number boolean string undefined null symbol

引用数据类型:array obj function

以上是简介js基础数据类型和引用类型以及深浅拷贝和内存分配问题的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn