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

如何做优品快报下的子网站wordpress变404

如何做优品快报下的子网站,wordpress变404,如何做网站后台管理,服装网站建设需求分析1. Map 基本概念 Map 是 ES6 提供的新的数据结构#xff0c;它类似于对象#xff0c;但是键的范围不限于字符串#xff0c;各种类型的值#xff08;包括对象#xff09;都可以当作键。Map 也可以跟踪键值对的原始插入顺序。 1.1 基本用法 // 创建一个空Map…1. Map 基本概念 Map 是 ES6 提供的新的数据结构它类似于对象但是键的范围不限于字符串各种类型的值包括对象都可以当作键。Map 也可以跟踪键值对的原始插入顺序。 1.1 基本用法 // 创建一个空Map const map new Map();// 创建一个带有初始值的Map const map1 new Map([[name, John],[age, 25] ]);// 使用对象作为键 const objKey { id: 1 }; const map2 new Map(); map2.set(objKey, value for object);// Map的大小 console.log(map1.size); // 2let myMap new Map(); myMap.set(name, Alice); myMap.set(1, one); myMap.set(true, boolean); console.log(myMap); // Map { name Alice, 1 one, true boolean } 1.2 Map的基本方法 const map new Map();// 添加键值对 map.set(name, John); map.set(age, 25).set(city, New York); // 支持链式调用// 获取值 console.log(map.get(name)); // John// 检查键是否存在 console.log(map.has(age)); // true// 删除键值对 map.delete(age);// 清空Map map.clear();// 获取Map的大小 console.log(map.size); // 0方法说明set(key, value)添加键值对get(key)获取键对应的值delete(key)删除某个键值对has(key)判断某个键是否存在clear()清空 Mapsize获取键值对数量 console.log(myMap.get(name)); // Alice console.log(myMap.has(1)); // true myMap.delete(true); console.log(myMap.size); // 2 myMap.clear(); console.log(myMap.size); // 02. Map的遍历 2.1 遍历方法 const map new Map([[name, John],[age, 25],[city, New York] ]);// keys() - 返回键名的遍历器 for (let key of map.keys()) {console.log(key); }// values() - 返回键值的遍历器 for (let value of map.values()) {console.log(value); }// entries() - 返回键值对的遍历器 for (let [key, value] of map.entries()) {console.log(key, value); }// forEach() - 使用回调函数遍历 map.forEach((value, key) {console.log(key, value); });let map new Map([[name, Alice],[age, 25],[gender, female] ]);console.log([...map.keys()]); // [name, age, gender] console.log([...map.values()]); // [Alice, 25, female] console.log([...map.entries()]); // [[name, Alice], [age, 25], [gender, female]]2.2 与对象的转换 // Map转对象 function mapToObject(map) {const obj {};for (let [key, value] of map) {obj[key] value;}return obj; }// 对象转Map function objectToMap(obj) {return new Map(Object.entries(obj)); }// 使用示例 const map new Map([[name, John], [age, 25]]); const obj mapToObject(map); const backToMap objectToMap(obj);3. 实际应用场景 3.1 缓存系统 class Cache {constructor() {this.cache new Map();}set(key, value, ttl 60000) { // 默认缓存1分钟const expires Date.now() ttl;this.cache.set(key, { value, expires });}get(key) {const data this.cache.get(key);if (!data) return null;if (Date.now() data.expires) {this.cache.delete(key);return null;}return data.value;}clear() {this.cache.clear();} }// 使用示例 const cache new Cache(); cache.set(user, { id: 1, name: John }, 5000); // 缓存5秒 console.log(cache.get(user)); // { id: 1, name: John }3.2 状态管理 class StateManager {constructor() {this.states new Map();this.listeners new Map();}setState(key, value) {this.states.set(key, value);if (this.listeners.has(key)) {this.listeners.get(key).forEach(listener listener(value));}}getState(key) {return this.states.get(key);}subscribe(key, callback) {if (!this.listeners.has(key)) {this.listeners.set(key, new Set());}this.listeners.get(key).add(callback);} }// 使用示例 const store new StateManager(); store.subscribe(theme, theme console.log(Theme changed to ${theme})); store.setState(theme, dark); // 输出: Theme changed to dark3.3 事件总线 class EventBus {constructor() {this.events new Map();}on(event, callback) {if (!this.events.has(event)) {this.events.set(event, new Set());}this.events.get(event).add(callback);}off(event, callback) {if (this.events.has(event)) {this.events.get(event).delete(callback);}}emit(event, data) {if (this.events.has(event)) {this.events.get(event).forEach(callback callback(data));}} }// 使用示例 const bus new EventBus(); bus.on(userLogin, user console.log(${user.name} logged in)); bus.emit(userLogin, { name: John }); // 输出: John logged in3.4 数据结构映射 class BiMap {constructor() {this.forward new Map();this.reverse new Map();}set(key, value) {this.forward.set(key, value);this.reverse.set(value, key);}getByKey(key) {return this.forward.get(key);}getByValue(value) {return this.reverse.get(value);} }// 使用示例 const userRoles new BiMap(); userRoles.set(john, admin); console.log(userRoles.getByKey(john)); // admin console.log(userRoles.getByValue(admin)); // john4. WeakMap WeakMap 是一种特殊的 Map它只接受对象作为键并且键是弱引用。 4.1 基本用法 const wm new WeakMap(); let key { id: 1 }; wm.set(key, value);console.log(wm.get(key)); // value key null; // key对象可被垃圾回收4.2 实际应用场景 // 使用 WeakMap 存储私有数据 const privateData new WeakMap();class User {constructor(name, age) {privateData.set(this, { name, age });}getName() {return privateData.get(this).name;}getAge() {return privateData.get(this).age;} }const user new User(John, 25); console.log(user.getName()); // John4.3 Map 与 WeakMap 的区别** 特性MapWeakMap是否存储值✅ 是✅ 是是否存储对象✅ 是✅ 仅能存对象是否支持遍历✅ 是❌ 不能遍历是否允许自动垃圾回收❌ 否✅ 是 WeakMap 适用于 存储对象的私有数据对象若被其他变量引用解除会被自动回收不会造成内存泄漏。 let weakMap new WeakMap(); let obj { name: John }; weakMap.set(obj, privateData); console.log(weakMap.get(obj)); // privateData obj null; // 当对象无引用时会被垃圾回收5. 性能考虑 5.1 Map vs Object 特性MapObject键的类型任意类型仅字符串或 Symbol是否有默认原型❌ 否✅ 是Object.prototype遍历顺序按插入顺序无序ES6 之后部分实现有序适合场景需要键值存储键可为任意类型传统键值对、JSON 结构 // Map 在频繁增删键值对时性能更好 const map new Map(); const obj {};console.time(Map); for (let i 0; i 1000000; i) {map.set(i, i);map.delete(i); } console.timeEnd(Map);console.time(Object); for (let i 0; i 1000000; i) {obj[i] i;delete obj[i]; } console.timeEnd(Object);let obj {}; obj[1] one; obj[1] number one; console.log(obj); // { 1: number one } 因为 Object 的键被转换为字符串let map new Map(); map.set(1, one); map.set(1, number one); console.log(map); // Map { 1 one, 1 number one }5.2 内存优化 // 及时清理不需要的数据 function processData(data) {const map new Map();// 处理数据...map.clear(); // 及时清空释放内存 }6. 最佳实践 需要非字符串键时使用 Map需要保持键值对顺序时使用 Map频繁增删键值对时使用 Map存储私有数据时考虑使用 WeakMap需要遍历键值对时使用 Map注意内存管理及时清理不需要的数据
http://www.pierceye.com/news/83300/

相关文章:

  • 中山市做网站公司同一个空间可以做两个网站么
  • 中国三大门户网站是哪三个html网页设计小作业的代码部分
  • 在线做流程图的网站做网站有兼职的吗
  • 塔城市建设局网站做空eth网站
  • 上海网站设计找哪家昆明网站词排名优化
  • 网站做商标在那类网络美工是干啥的
  • 沌口网站建设网站推广如何做的
  • 淘客app网站是怎么做的c 做网站 知乎
  • 网站套模板教程轻创优选地推app
  • 长春建设工程信息网站广西建设工程造价管理协会网站
  • 加盟网站制作公司wordpress 国内镜像
  • 苏州网站排名方案怎么做自己的快递查询网站
  • python可以做网站后台吗免费域名注册平台永久
  • 昆明网站建设首选才力北京定制网络营销推广
  • 网站盈利了湖北网站建设xiduyun
  • 佛山外贸网站建设行情关键词搜索指数
  • 织梦调用网站名称两学一做 知识竞赛网站
  • 途牛网站建设方案电商网络销售是做什么
  • 珠海建网站设计asp.net做的小网站
  • 做网站怎么赚钱广告杭州网站改版
  • 江门网站推广多少钱网站代码字体变大
  • 全定制网站开发湖北省住建厅网站官网
  • 建设科普网站的意义盘锦兴隆台住房和城乡建设网站
  • 竞价网站策划网站后台数据库下载
  • 网页设计怎么建站点莱芜求职信息查询
  • 网站优化 月付费潍坊网站制作发
  • 网站目录做跳转做网站前期构架图
  • 徐州企业网站推广wordpress菜单 自定义菜单
  • 用iis做网站福建做网站公司排名
  • 霸州建设局网站九天利建公司简介