当前位置: 首页 > 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.pierceye.com/news/983831/

相关文章:

  • 做网站在哪里可以找到高清壁纸北京响应式网站
  • 企业网站建设门户网站建设费的摊销年限
  • 模板网站的域名是什么网站源代码程序
  • 网站空间多久续一次费长春网站制作设计
  • 网站制作价格低广西网络电视
  • 平台网站建设收费烟台网站的优化
  • 如何做提卡网站vue.js wordpress
  • 国家网站备案查询系统wordpress 主题 简洁
  • 建设商业网站html什么意思
  • 网站专题建设方案江苏省建设厅网站 杨洪海
  • 通化网站建设公司南江县住房和城乡建设局网站
  • 网站的外链是什么软件开发与网站开发的区别
  • 学做网站论坛vip账户了解网站开发的背景
  • 做3个网站需要多大的服务器科凡建站
  • 网站设计制作音乐排行榜44555pd永久四色端口
  • 网站优化方案教程如何注册chn域名网站
  • 怎样建设免费网站个别网站网速慢怎么做
  • 网页设计制作音乐排行榜一键seo提交收录
  • 网站推广要我营业执照复印件conoha wordpress
  • 免费行情软件app网站排行高质量外链网站
  • 免费解析网站制作网站开发项目实战视频
  • 柳州网站建设工作室基金会网站开发方案
  • 龙海网站建设微网站如何建设
  • 手机视频网站怎么做贵阳专业做网站
  • 网站建设题库vps上的网站运行太慢
  • 化妆品网站优化沧州网站制作公司
  • 专业优定软件网站建设上海seo服务
  • 网站充值怎么做的c2c平台的产品类型
  • 阿里去要企业网站建设方案书手机设计房子的软件3d下载
  • 凡科网站登录入轻博客网站开发