当前位置: 首页 > news >正文

进一步加强网站建设品牌网站建设必在大蝌蚪

进一步加强网站建设,品牌网站建设必在大蝌蚪,网上怎么打广告,热门关键词排名查询一、回顾变量类型 基础类型 boolean(bool) number string null undefined 引用类型 object ​ function ​ array 基本类型与引用类型的存储 基本类型一般存储在 栈 (栈小) 栈一旦确认 大小就固定 可能会造成溢出栈一般是先进后出用于存储…

一、回顾变量类型

基础类型

boolean(bool)

number

string

null

undefined

引用类型

object

​ function

​ array

基本类型与引用类型的存储

基本类型一般存储在 栈 (栈小) 

  1. 栈一旦确认 大小就固定 可能会造成溢出
  2. 栈一般是先进后出
  3. 用于存储基础类型以及引用类型的堆地址
  4. 运行速度快

引用类型一般存储在 堆(堆大)

  1. 堆大小不确认 可以扩展
  2. 不允许js直接操作堆数据
  3. 无序存储
  4. 由于其大小不固定 顺序不固定 导致 速度慢

堆栈示意图

栈内容当程序运行完毕 栈就空了

但是堆内容不见的一定就空 可能会出现 没有任何指针指向堆内容 导致都变成垃圾

所以我们需要手动指向 null让其销毁

二、深浅拷贝

深浅拷贝分两种情况 引用类型 基础类型

基础类型都是深拷贝

引用类型 大多数是浅拷贝 也可以变成深拷贝

深拷贝 地址不同 一个改变另一个并不跟随发生变化就是深拷贝 拷贝内容 地址不同

浅拷贝 地址相同 一个改变另一个随之改变 就是浅拷贝 拷贝的是地址

 
  1. 深拷贝
  2. let a = 10;
  3. let b = a;
  4. console.log(1,a,b,a===b);
  5. a = 88;
  6. console.log(2,a,b,a===b);
  7. console.log("======================");
  8. 浅拷贝
  9. let obj1 = {
  10. n : 88
  11. }
  12. let obj2 = obj1;
  13. console.log(1,obj1,obj2,obj1===obj2);
  14. obj1.a = 99;
  15. console.log(2,obj1,obj2,obj1===obj2);
 
  1. 实现深拷贝 array object
  2. 1.JSON.stringify JSON.parse
  3. let obj1 = {
  4. n : 88
  5. }
  6. let obj2 = JSON.parse(JSON.stringify(obj1)); //深拷贝
  7. console.log(1,obj1,obj2,obj1===obj2);
  8. obj1.a = 99;
  9. console.log(2,obj1,obj2,obj1===obj2);
  10. 2. ... 解构
  11. let arr1 = [1,5,6,7];
  12. let arr2 = [...arr1];
  13. console.log(1,arr1,arr2,arr1===arr2);
  14. arr1[0] = "222"
  15. console.log(2,arr1,arr2,arr1===arr2);
 
  1. // 伪拷贝 一般情况下是 第一层深拷贝 后面层浅拷贝
  2. let arr1 = [1,2,3,[6,7,8]];
  3. let arr2 = arr1.slice();
  4. console.log(1,arr1,arr2,arr1 === arr2);
  5. arr1[0] = 180;
  6. arr1[3][0] = 666;
  7. console.log(2,arr1,arr2,arr1 === arr2);
  8. let arr1 = [1,2,3,[6,7,8]];
  9. let arr2 = arr1.concat();
  10. console.log(1,arr1,arr2,arr1 === arr2);
  11. arr1[0] = 180;
  12. arr1[3][0] = 666;
  13. console.log(2,arr1,arr2,arr1 === arr2);
 
  1. let menu1 = {
  2. menu: "菜单",
  3. item:{
  4. type: "menu",
  5. name: "子菜单"
  6. }
  7. }
  8. // Object.assign(目标,源)
  9. let menu2 = Object.assign({},menu1)
  10. console.log(1,menu1,menu2,menu1 === menu2);
  11. menu1.menu = "编辑"
  12. menu1.item.name = "保存"
  13. console.log(2,menu1,menu2,menu1 === menu2);

想要解决真正意义上的拷贝咋办

扁平化 嵌套的多层想办法给他变成地扁平化 递归思想

递归思想

普通的 按正常处理

深度的(引用类型 )按递归处理 直到没有引用类型为止··

 
  1. let woniu = {
  2. name: "张三",
  3. age: 8,
  4. school: [
  5. {
  6. id: 1,
  7. name: "清华校区"
  8. },
  9. {
  10. id: 2,
  11. name: "北大校区"
  12. },
  13. {
  14. id: 3,
  15. name: "上交校区"
  16. },
  17. {
  18. id: 4,
  19. name: "国科大校区"
  20. }
  21. ],
  22. subject: {
  23. web: "web前端",
  24. java: "java后端",
  25. python: "python",
  26. ui: "设计"
  27. }
  28. }
  29. function copyData(source) {
  30. // 定义一个容器 容器需要根据源来决定 源是对象 你就是你对象 源是数组你就是数组
  31. let result = Array.isArray(source) ? [] : {};
  32. for (const item in source) { // 遍历源 对象与数组的统一遍历方式是 for in
  33. if (typeof source[item] === "object") { //区分引用类型与普通类性别 引用类型继续处理(遍历)基本类型直接返回
  34. result[item] = copyData(source[item])
  35. } else {
  36. result[item] = source[item];
  37. }
  38. }
  39. return result; // 最终将结果返回
  40. }
  41. let fanyun = copyData(woniu);
  42. console.log(1,woniu,fanyun);
  43. woniu.subject.web = "web大前端"
  44. woniu.school[0].name = "总校区"
  45. console.log(2,woniu,fanyun);

 

http://www.15wanjia.com/news/184198.html

相关文章:

  • 网站ui需求应用市场app下载安装到手机
  • 门户网站怎么创建网站开发所需要的时间 知乎
  • 百度收录网站怎么做网站如何建设目录结构
  • 莆田网站建设网网站开发市场调查
  • 网站空间到期怎么续费wordpress改域名
  • 手机网站你懂最专业 汽车网站建设
  • 网站后台文章排版网站更新维护页面
  • 网站建设管理人员推荐表wap网站开发多少钱
  • 网站版权信息模板互联网兼职做网站维护
  • 网站关键词排名全掉了山西大学物理电子工程学院研招网
  • 编写网站广东省建设局网站
  • 电子政务网站设计大的网站制作
  • 重庆 建网站网站建设工作室门头
  • 网站设计师介绍微信app开发
  • 平凉市城乡建设局网站个人网站制作手绘
  • wordpress网站被攻击公司起名字大全免费2023
  • 有口碑的江苏网站建设网站建设企业的未来发展计划
  • 深圳商业网站建设系统优秀手机网站模板图片
  • wordpress显示网站在线人数上海网络seo优化公司
  • 学生做兼职去哪个网站网页制作代码html添加音乐
  • 广州网站改版哪家好中国设计师网站
  • 文案写作网站好用的网站推荐
  • 郓城县建设局网站手机端wordpress模板
  • vue做的网站有什么wordpress The7 v4.4.8深度汉化
  • 如何制作网站首页深圳中国电信网站备案
  • 购物车网站设计数据交换平台
  • 初中信息科技怎么自己做网站昆明淘宝网站建设
  • 哪家做网站的公司好网站自己做还是找人做
  • 网站建站收费免费个人网站建站申请
  • dedecms 门户网站1cpu0.5g服务器用来做网站