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


Posted in Javascript onSeptember 02, 2017

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基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
简短几句 通俗解释javascript的闭包
Jan 17 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
Dec 28 Javascript
js中top/parent/frame概述及案例应用
Feb 06 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
Apr 11 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
Nov 15 Javascript
js运动应用实例解析
Dec 28 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
Nov 25 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
详细分析单线程JS执行问题
Nov 22 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
Dec 14 Javascript
关于在LayUI中使用AJAX提交巨坑记录
Oct 25 Javascript
js+canvas实现五子棋小游戏
Aug 02 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
Sep 02 #Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
Sep 02 #Javascript
使用vue-resource进行数据交互的实例
Sep 02 #Javascript
jquery tmpl模板(实例讲解)
Sep 02 #jQuery
自制简易打赏功能的实例
Sep 02 #Javascript
Vue使用vue-cli创建项目
Sep 01 #Javascript
vue 里面使用axios 和封装的示例代码
Sep 01 #Javascript
You might like
php 获取客户端的真实ip
2009/11/30 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
php cookie 详解使用实例
2016/11/03 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
JS中 用户登录系统的解决办法
2013/04/15 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
用Python编写简单的微博爬虫
2016/03/04 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
python验证身份证信息实例代码
2019/05/06 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
Python如何批量生成和调用变量
2020/11/21 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
环保建议书200字
2014/05/14 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android
Python中可变和不可变对象的深入讲解
2021/08/02 Python
Python安装使用Scrapy框架
2022/04/12 Python