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

大连软件开发网站建设一个服务器多个网站好吗

大连软件开发网站建设,一个服务器多个网站好吗,百度的相关搜索,怎么创建公众号微信Symbol 是 ECMAScript 6#xff08;ES6#xff09;引入的一种新的基本数据类型。Symbol 类型的值是唯一且不可变的。目的是确保对象属性使用唯一标识符#xff0c;不会发生属性冲突的危险。 1. 使用Symbol() 创建 调用 Symbol()函数时#xff0c;也可以传入一个字符串参数…Symbol 是 ECMAScript 6ES6引入的一种新的基本数据类型。Symbol 类型的值是唯一且不可变的。目的是确保对象属性使用唯一标识符不会发生属性冲突的危险。 1. 使用Symbol() 创建 调用 Symbol()函数时也可以传入一个字符串参数作为对符号的描述将来可以通过这个字符串来调试代码。但是这个字符串参数与符号定义或标识完全无关。 let sym1 Symbol()let sym2 Symbol(description)console.log(typeof sym1)//symbolconsole.log(sym1)//Symbol()console.log(sym2)//Symbol(description)const s1 Symbol(foo)const s2 Symbol(foo)const s3 Symbol()const s4 Symbol()console.log(s1 s2);//falseconsole.log(s3 s4);//false注意Symbol()函数不能与 new 关键字一起作为构造函数使用这样做是为了避免创建包装对象。Symbol 的设计初衷是为了创建唯一的标识符而不是作为构造函数创建对象。 new Symbol()会导致 TypeError因为 Symbol 不是构造函数。 const s1 new Symbol()// Uncaught TypeError: Symbol is not a constructor2. 使用 Symbol.for()创建可共享Symbol Symbol.for 会检查全局 Symbol 注册表如果存在相同描述的 Symbol则返回已存在的 Symbol否则创建一个新的 Symbol。什么是幂等操作 let s1 Symbol.for(foo); // 创建新的Symbollet s2 Symbol.for(foo); // 通过描述符在全局注册表中获取Symbolconsole.log(s1 s2); // trueSymbol.for()对每个字符串键都执行幂等操作。无论在何处调用 Symbol.for(‘foo’)都会返回相同的全局共享 Symbol。 而每次调用 Symbol() 都会创建一个新的、不共享的 Symbol。即使描述符相同每次调用Symbol(‘foo’) 都会返回一个不同的 Symbol。 const s1 Symbol(foo); const s2 Symbol(foo); const s3 Symbol.for(foo);console.log(s1 s2); // false console.log(s2 s3); // false3. 在实际开发中的运用 3.1 作为对象属性的键 由于 Symbol 的唯一性它可以用作对象的属性名且不容易被意外覆盖。 // 创建一些 Symbol 属性 const symbol1 Symbol(symbol1); const symbol2 Symbol(symbol2);const obj {[symbol1]: value1,[symbol2]: value2, };3.2 定义常量 使用 Symbol 可以创建全局唯一的常量避免命名冲突。 const LogLevel {INFO: Symbol(INFO),WARNING: Symbol(WARNING),ERROR: Symbol(ERROR) };function logMessage(message, level LogLevel.INFO) {// 根据不同的日志级别执行不同的操作if (level LogLevel.INFO) {console.log(INFO: ${message});} else if (level LogLevel.WARNING) {console.warn(WARNING: ${message});} else if (level LogLevel.ERROR) {console.error(ERROR: ${message});} }logMessage(Something happened, LogLevel.WARNING);3.3 实现类似私有成员 通过将 Symbol 用作属性名可以模拟实现类似私有成员的概念。 const privateProperty Symbol(privateProperty);class MyClass {constructor() {this[privateProperty] I am private!;}getPrivateProperty() {return this[privateProperty];} }const instance new MyClass(); console.log(instance.getPrivateProperty()); // 输出I am private! console.log(instance[privateProperty]); // undefined无法直接访问私有属性3.4 使用内置 Symbol 值 JavaScript 提供了一些内置的 Symbol 值例如 Symbol.iterator、Symbol.toPrimitive 等它们用于定义对象的默认迭代行为、类型转换等。 拿Symbol.iterator 举个栗子 它是一个内置的 Symbol 值它用于定义对象的默认迭代器。 迭代器是一个对象它实现了一个 next方法该方法返回包含 value 和 done 属性的对象value 表示当前迭代的值done属性表示迭代是否完成。 const myObject {values: [1, 2, 3],[Symbol.iterator]: function () {let index 0;const values this.values;return {next: function () {return index values.length ?{ value: values[index], done: false }:{ value: undefined, done: true };}};} };for (const value of myObject) {console.log(value); }4. Symbol的遍历 注意Symbol 是不可被枚举的因此使用 for...in循环或 Object.keys() 无法遍历出 Symbol 属性。 Object.getOwnPropertySymbols(obj)可以获取所Symbol 属性值, 返回值是一个数组。 const symbol1 Symbol(symbol1);const symbol2 Symbol(symbol2);const obj {[symbol1]: value1,[symbol2]: value2,greeting: hello};// 获取对象的所有 Symbol 属性const symbolProperties Object.getOwnPropertySymbols(obj);console.log(symbolProperties);// [Symbol(symbol1), Symbol(symbol2)]console.log(Object.keys(obj));// [greeting]Reflect.ownKeys(obj)可以获取包含 Symbol在内的所有键。 // 获取包含 Symbol的所有键const allKeys Reflect.ownKeys(obj);console.log(allKeys);//[Symbol(symbol1), Symbol(symbol2)greeting]同样也可以使用Object.keys和Object.getOwnPropertySymbols的组合的数组。 const allKeys [...Object.keys(obj), ...Object.getOwnPropertySymbols(obj)];console.log(allKeys);✨JavaScript高级知识点 1.什么是闭包和作用域链 2.什么是arguments对象 3.什么是proxy代理 4.类数组对象是什么 5.Array.from()的6种常见用法
http://www.zqtcl.cn/news/983831/

相关文章:

  • 招标网站的服务费怎么做分录什么网站做玩具的比较多
  • 青海省住房建设厅网站WordPress主题启用出现错误
  • 自己怎么建网站网站的seo 如何优化
  • 博客网站模板下载如何自学美工
  • 哪个免费建站好专业seo要多少钱
  • 做3d建模贴图找哪个网站珠海建设网站公司简介
  • 网站开发过程前端后端qq刷赞网站咋做
  • 湘潭高新区建设局网站旅游做攻略的网站有哪些
  • wordpress网站云备份网站模块插件是怎么做的
  • 郑州市城乡建设规划网站深圳十佳设计公司排名
  • 上海建设项目环保验收公示网站两新支部网站建设
  • 网站开发移动端网络系统软件应用与维护
  • 浙江网站建设营销网站后台管理系统一般用户名是什么
  • 网站 空间 租用wordpress搬家需要修改
  • 做网站推广怎么找客户网站换空间 seo
  • ipad网站开发seo哪家强
  • 昆明网站建设猫咪科技公司资料模板
  • 网站系统开发做网站需要填什么
  • 网站的数据库丢失建筑素材网
  • 个人网站做短视频pathon能做网站开发吗
  • 客户网站制作管理系统网站程序 wap pc 同步
  • 天津手动网站建设调试百度医院网站建设
  • ppt网站源码今天哈尔滨最新通告
  • asp网站乱码广州制作网页设计
  • 调用别人网站的数据库如何开网店卖自己的东西
  • 个人网站做影视网站开发学什么专业
  • 企业名称注册查询官网入口免费seo网站推广
  • 浙江门户网站建设公司个体工商户查询
  • 做网站的注意点赛事竞猜网站开发
  • 现在流行用什么语言做网站ppt设计教程网