5.6k 词
前言​ 前端开发中处理对象和数组时,我们经常会碰到数据拷贝的情景,如果出现一些不恰当的拷贝就会导致一些难以预料的错误,难以排查与维护。拷贝又常常分为深拷贝和浅拷贝,因此弄清楚两者的概念及区别尤为重要。 举个简单例子: ​ 相信大家对于这种表格并不陌生,在操作栏会有一个显示详细数据的功能,这需要实现一个数据回显的功能用于显示详细数据。 ​ 如果这里通过回显数据 = 表格数据 直接赋值就会出现一个问题,当我在回显数据上使用了修改功能后,哪怕没有选择确定或者保存,外面表格的数据都会发生变化。 这种就是典型的浅拷贝带来的问题,对拷贝数组做出的更改有时会影响到源数组。注意这里的有时,后文会介绍为什么。 引言 我们先来看个最简单的拷贝: 123const a = 10;cosnt b = a;console.log(b); 毫无疑问,输出结果是10。 为了深入理解拷贝这一过程,我们需要研究数据在内存中的存储方式。 对于上面的基本数据类型(number)的存储,js会采用值类型栈存储的方式直接把a的值拷贝给b。 值类型栈存储: 主要针对(Num...
487 词
快速开始项目初始化1$ hexo init "根目录名称" 新建一个网站。如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站。 More info: Commands 清除缓存1$ hexo clean 清除缓存文件 (db.json) 和已生成的静态文件 (public)。 More info: Clearing Cache 生成静态文件1$ hexo generate || hexo g 生成静态文件。 More info: Generating 启动本地服务器1$ hexo server || hexo s 启动服务器。默认情况下,访问网址为: http://localhost:4000/。 More info: Server 部署1$ hexo deploy || hexo d More info: Deployment 新建一篇文章1$ hexo new "My New Post" More info: Writing 发布草稿1$ hexo publish [layout] <fi...