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

网站安全保障机制如何做网站地图怎么生成

网站安全保障机制如何做,网站地图怎么生成,wordpress产品菜单,网页设计代码html千与千寻在垃圾回收中了解JavaScript 引擎在值“可达”和可能被使用时会将其保持在内存中 let john { name: "John" }; // 该对象能被访问,john 是它的引用 // 覆盖引用 john null; // 该对象将会被从内存中清除通常,当对象、数组之类的数据结构在内…

在垃圾回收中了解JavaScript 引擎在值“可达”和可能被使用时会将其保持在内存中

let john = { name: "John" };
// 该对象能被访问,john 是它的引用
// 覆盖引用
john = null;
// 该对象将会被从内存中清除

通常,当对象、数组之类的数据结构在内存中时,它们的子元素,如对象的属性、数组的元素都被认为是可达的。

let john = { name: "John" };
let array = [ john ];
john = null; // 覆盖引用
// 前面由 john 所引用的那个对象被存储在了 array 中
// 所以它不会被垃圾回收机制回收
// 我们可以通过 array[0] 获取到它

类似的,如果我们使用对象作为常规 Map 的键,那么当 Map 存在时,该对象也将存在。它会占用内存,并且不会被(垃圾回收机制)回收。

let john = { name: "John" };
let map = new Map();
map.set(john, "...");
john = null; // 覆盖引用
// john 被存储在了 map 中,
// 我们可以使用 map.keys() 来获取它

而WeakMap 在这方面有着根本上的不同。它不会阻止垃圾回收机制对作为键的对象(key object)的回收

WeakMap

WeakMap 和 Map 的第一个不同点就是,WeakMap 的键必须是对象,不能是原始值

let weakMap = new WeakMap();
let obj = {};
weakMap.set(obj, "ok"); // 正常工作(以对象作为键)
// 不能使用字符串作为键
weakMap.set("test", "Whoops"); // Error,因为 "test" 不是一个对象

如果我们在 weakMap 中使用一个对象作为键,并且没有其他对这个对象的引用 —— 该对象将会被从内存(和map)中自动清除。

     let john = { name: "John" };let weakMap = new WeakMap();weakMap.set(john, "...");console.log(weakMap.get(john)); //...john = null; // 覆盖引用// john 被从内存中删除了!console.log(weakMap.get(john)); //undefined

WeakMap 不支持迭代以及 keys(),values() 和 entries() 方法。所以没有办法获取 WeakMap 的所有键或值。

WeakMap 只有以下的方法:

  • weakMap.get(key)
  • weakMap.set(key, value)
  • weakMap.delete(key)
  • weakMap.has(key)

使用的场景

  • WeakMap 的主要应用场景是 额外数据的存储
  • 缓存

WeakSet

WeakSet 的表现类似:

  • 与 Set 类似,但是我们只能向 WeakSet 添加对象(而不能是原始值)。
  • 对象只有在其它某个(些)地方能被访问的时候,才能留在 WeakSet 中。
  • 跟 Set 一样,WeakSet 支持 add,has 和 delete 方法,但不支持 size 和 keys(),并且不可迭代。

变“弱(weak)”的同时,它也可以作为额外的存储空间。但并非针对任意数据,而是针对“是/否”的事实。WeakSet 的元素可能代表着有关该对象的某些信息。

let visitedSet = new WeakSet();let john = { name: "John" };
let pete = { name: "Pete" };
let mary = { name: "Mary" };visitedSet.add(john); // John 访问了我们
visitedSet.add(pete); // 然后是 Pete
visitedSet.add(john); // John 再次访问// visitedSet 现在有两个用户了
// 检查 John 是否来访过?
alert(visitedSet.has(john)); // true
// 检查 Mary 是否来访过?
alert(visitedSet.has(mary)); // false
john = null;
// visitedSet 将被自动清理(即自动清除其中已失效的值 john)

WeakMap 和 WeakSet 最明显的局限性就是不能迭代,并且无法获取所有当前内容。那样可能会造成不便,但是并不会阻止 WeakMap/WeakSet 完成其主要工作 —— 为在其它地方存储/管理的对象数据提供“额外”存储。

总结

  • WeakMap 是类似于 Map 的集合,它仅允许对象作为键,并且一旦通过其他方式无法访问这些对象,垃圾回收便会将这些对象与其关联值一同删除。
  • WeakSet 是类似于 Set 的集合,它仅存储对象,并且一旦通过其他方式无法访问这些对象,垃圾回收便会将这些对象删除。

主要优点

是它们对对象是弱引用,所以被它们引用的对象很容易地被垃圾收集器移除。

这是以不支持 clear、size、keys、values 等作为代价换来的……

WeakMap 和 WeakSet 被用作“主要”对象存储之外的“辅助”数据结构。一旦将对象从主存储器中删除,如果该对象仅被用作 WeakMap 或 WeakSet 的键,那么该对象将被自动清除。

http://www.yayakq.cn/news/812973/

相关文章:

  • 上海专业网站制作公司网站建设前言和背景
  • 网站备案要网站做才可以使用吗html5网页模板免费
  • 免费的app软件下载网站wordpress新浪图
  • 菲纳斯wordpress网站内部seo优化包括
  • vps网站管理器3g手机网站建设
  • 广州建网站兴田德润团队51模板ppt
  • 卓越亚马逊网站建设目的自己做网站转发新闻违法么
  • 长沙做网站团队网页设计与网站建设题库
  • 石家庄做网络推广的网站电商网络推广方案
  • 网站建设找睿智骄阳网站系统开发方式
  • 佛山当地网站建设公司手机网站网络环境
  • 吉化北建公司官网哈尔滨关键词优化排名
  • 网站建设的难处WordPress博客建站系统
  • 公司海外网站建设5万一套小院出售
  • 九江有哪些做网站的公司千旺crm客户管理系统
  • 网站建设应该注意哪些搜狐快站建站
  • 品牌网站建设还来大蝌蚪求一个网站
  • 许昌网站建设嘉兴手机网站开发费用
  • 网络优化首先要有网站网站的重要目录对百度进行了封禁
  • 响应试企业网站如何做购物券网站
  • 临沂网站建设哪家专业俄罗斯搜索引擎入口 yandex
  • 南昌市新农村建设网站阿里巴巴网站首页怎么制作
  • 织梦首饰网站模板wordpress 网站搬迁
  • 网站建设销售问你告诉我怎么制作上海的重大新闻
  • 网站建设与信息安全培训小结品牌推广是什么
  • 微商网站推广怎么做永久免费微信小程序商城
  • 云南省建设考试中心网站wordpress打电话插件
  • 海南网站建设fwlitwordpress字怎么变大
  • 学做视频t的网站一家只做性价比的网站
  • 广东建网站东莞英文网站建设