IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 数据拷贝/类型判断 -> 正文阅读

[JavaScript知识库]数据拷贝/类型判断

数据拷贝

  1. 数据存储

基本类型:存储在栈内存中
基本类型(6 种):Number/ String/ Boolean/ undefined/ null/ Symbol

引用类型:变量存储在栈内存中(变量存的地址),具体数据存储在堆内存中,通过地址链接
引用类型:Object(对象、数组、函数)

  1. 变量拷贝/传递

基本类型:拷贝的是存储在栈内存中的变量的值
引用类型:拷贝的是存储在栈内存中的变量的地址,堆内存中数据共享

  1. 浅拷贝–解决引用类型数据共享问题

拷贝对象:

  • 对象的合并==> Object.assgin( {空对象}, 要复制的对象 )
  • 遍历对象==>使用 for…in

拷贝数组:

  • Object.assgin([ ], [要复制的数组 ] )
  • 数组的内置方法 map、forEach 等
  1. 深拷贝–解决浅拷贝只能拷贝一层的问题
  • JSON.stringify() 先将对象/数组转成字符串,改变数据类型,直接复制简单类型数据的值
  • JSON.parse() 再将字符串转回对象、数组
    例子://let newNum=JSON.parse( JSON.stringify( 被拷贝的变量 ) )

JSON 方法的缺点:

  1. 如果有时间对象,时间将只是字符串的形式,而不是对象的形式
  2. 如果 obj 里有 RegExp(正则表达式的缩写)、Error 对象,则序列化的结果将只得到空对象
  3. 如果 obj 里有函数,undefined,则序列化的结果会把函数或 undefined丢失
  4. 如果 obj 里有 NaN、Infinity 和-Infinity,则序列化的结果会变成 null
  1. 完美的深拷贝

Lodash 外部调用
< script src=“xxx”>< /script >
使用lodash的属性:let newNum = _.cloneDeep( 被拷贝的变量 )

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 13:43:31  更:2021-12-08 13:44:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:51:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码