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

网站猜你喜欢代码请人用wordpress建站假期

网站猜你喜欢代码,请人用wordpress建站假期,怎么做网页才能置顶,个人域名备案要求概述 ES6引入新类型Symbol,表示独一无二的值,作为JavaScript语言的第7种类型。 Symbol值通过Symbol()函数生成。 Symbol函数前不能使用new命令,因为生成的Symbol是一个原始类型的值,不是对象。 let sSymbol(); console.log(ty…

概述

ES6引入新类型Symbol,表示独一无二的值,作为JavaScript语言的第7种类型。

Symbol值通过Symbol()函数生成。

Symbol函数前不能使用new命令,因为生成的Symbol是一个原始类型的值,不是对象。

let s=Symbol();
console.log(typeof s);

·>symbol

Symbol函数的参数

Symbol函数可以接受一个字符串作为参数,表示对Symbol实例的描述。

let s1=Symbol("foo");
let s2=Symbol("bar")
console.log(s1,s1.toString());
console.log(s2,s2.toString());

·>Symbol(foo) 'Symbol(foo)'
   Symbol(bar) 'Symbol(bar)'

如果Symbol的参数是一个对象,就会调用其 toString方法,将其转换为字符串,然后才生成一个 Symbol值。

const obj = {toString() {return 'abc';}
};
const sym = Symbol(obj);
console.log(sym);

·>Symbol(abc)

Symbol函数的参数只表示当前Symbol值的描述。

相同参数的Symbol函数的返回值是不相等的。

let s1 = Symbol();
let s2 = Symbol();
console.log('s1==s2', s1 == s2);

·>s1==s2 false

let s1 = Symbol('foo');
let s2 = Symbol('foo');
console.log('s1==s2', s1 == s2);

·>s1==s2 false

Symbol值不能与其他类型的值进行运算,否则会报错。

Symbol值可以显式的转换为字符串。

Symbol值可以显式的转换为布尔值,但不能转换为数值。


创建Symbol值的属性

1.直接在对象初始化时通过 [] 语法使用 Symbol 作为属性名

const mySymbol = Symbol('description');const obj = {[mySymbol]: 'Symbol属性值' 
};console.log(obj[mySymbol]); 

2.动态添加属性

const mySymbol = Symbol('description');
const obj = {};obj[mySymbol] = '动态添加的Symbol属性';

3.通过属性描述符定义 Symbol 属性Object.defineProperty

const mySymbol = Symbol('description');
const obj = {};Object.defineProperty(obj, mySymbol, {value: '通过描述符定义的Symbol属性',writable: true,enumerable: true, // 默认 false(Symbol属性默认不可枚举)configurable: false
});console.log(obj[mySymbol]);


作为属性名的Symbol

所有的数据都可以用foreach()/for...of 迭代,因为他们都有一个共同的接口(symbol)。

Symbol作为对象属性名保证不会出现同名的属性。

作用:对一个对象由多个模块构成的情况非常有用,能防止一个键被不小心改写或覆盖。

Symbol值作为属性名时不能使用点运算符。

let proSym = Symbol();
let a = {};
a.proSym='Hello';
console.log(a[proSym]);
console.log(a['proSym']);

·>undefined
    Hello

当使用 a.proSym = ... 语法时,属性名会被强制转换为字符串

在对象内部使用Symbol值定义属性时,Symbol值必须放在方括号中。

let d = {
[proSym](name) {
console.log('hello' + name);
}
};
d[proSym]('xiaohua');

·>helloxiaohua

Symbol类型可以用于定义一组常量,保证这组常量的值都是不相等的。

let log = {};
log.levels = {
DEBUG: Symbol('debug’),
INFO: Symbol('info’),
WARN: Symbol('warn')
};
console.log(log.levels.DEBUG, 'debug message');
console.log(log.levels.INFO, 'info message');

·>Symbol(debug) 'debug message'
   Symbol(info) 'info message'


属性名的遍历

Symbol作为属性名时,该属性不会出现在for…in和 for…of循环中。也不会被Object.keys()、Object.getOwnPropertyNames()返回。

可以使用Object.getOwnPropertySymbols()方法获取指定对象的所有Symbol属性名。

let obj = {};
let a = Symbol('a');
let b = Symbol('b');
obj[a] = 'Hello';
obj[b] = 'World';
let objectSymbols = Object.getOwnPropertySymbols(obj);
console.log(objectSymbols);

·>[Symbol(a), Symbol(b)]

Reflect.ownKeys方法可以返回所有类型的键名,包括常规键名和Symbol键名。

let o = {
[Symbol('my_key')]: 1,
enum: 2,
nonEnum: 3
};
let r3 = Reflect.ownKeys(o);
console.log(r3);

·>['enum', 'nonEnum', Symbol(my_key)]


Symbol.for( )与Symbol.keyFor( )

Symbol.for( )

Symbol.for方法接受一个字符串,然后搜索有没有以该参数作为名称的Symbol值,若有,则返回这个Symbol值,否则新建并返回一个以该字符串为名称的Symbol值。

Symbol.keyFor( )

Symbol.keyFor方法返回一个已登记的Symbol类型值的key。
s1 = Symbol.for('foo');
s2 = Symbol.for('foo');
console.log(s1 === s2);
console.log(Symbol.keyFor(s1));

·>true
   foo


Symbol.toPrimitive属性

指向一个方法,对象被转换为原始类型的值时会调用这个方法,返回该方法对应的原始类型值。

其他属性使用方式,参考网址:Symbol - JavaScript | MDN


文章转载自:

http://J6BkhY5k.kphyL.cn
http://AYpYpfBl.kphyL.cn
http://YyQW2W9Z.kphyL.cn
http://w6RfMyko.kphyL.cn
http://cGRduido.kphyL.cn
http://8QN0l7Xk.kphyL.cn
http://hVqs5RbO.kphyL.cn
http://pMyrs6Ze.kphyL.cn
http://yyxxLCKr.kphyL.cn
http://GYx1Wulk.kphyL.cn
http://C1H2bs0m.kphyL.cn
http://wQBsNt1E.kphyL.cn
http://235AUChY.kphyL.cn
http://isbvRYPT.kphyL.cn
http://aW0pfm7u.kphyL.cn
http://LVbUf4Oe.kphyL.cn
http://jszfDV96.kphyL.cn
http://0XCgZQkg.kphyL.cn
http://FcdLvqP0.kphyL.cn
http://Mka9QAST.kphyL.cn
http://SnjvsNnK.kphyL.cn
http://FirCPZIE.kphyL.cn
http://LdgO9eu8.kphyL.cn
http://pxlvXQ03.kphyL.cn
http://p4tOPZkl.kphyL.cn
http://gsxf6v24.kphyL.cn
http://YRZ6nYFP.kphyL.cn
http://QyBbYWn3.kphyL.cn
http://3UlQoRII.kphyL.cn
http://QTNEJYWC.kphyL.cn
http://www.dtcms.com/wzjs/722292.html

相关文章:

  • 网站建设 部署与发布视频教程电子商务网站建设课
  • 网站seo设置wordpress添加标签
  • 渭南建站设计上海2023展会时间
  • 网站建设大神级公司免费下载ppt模板网站推荐
  • 食品行业网站建设方案怎么在网站上做360全景图片
  • 官网站内推广内容室内设计公司和装修公司的区别
  • 无锡 网站 seo 优化哈尔滨巨耀网站建设
  • 网站做seo有什么作用怎么建网站
  • 自己网站建设的流程是什么建立企业营销网站主要包括哪些内容
  • 网站下载免费新版长沙竹叶网络科技有限公司
  • 网站建设是那个行业wordpress文章形式
  • 网站推广120祝明电子商务网站建设实验报告
  • 个人网站 云服务器广州番禺网站公司哪家好
  • 免费购物网站建设深圳企业招聘信息最新招聘信息
  • 网站开发 一般用什么语言平面设计培训班学费
  • 怎样自己做公司网站做网盟行业网站的图片广告的销售
  • 青浦苏州网站建设精美大气的餐饮类企业网站
  • 网站外包公司2345浏览器免费版
  • 什么网站可以做试题html 音乐网站
  • 网站菜单导航怎么做的wordpress的seo如何写关键词
  • 网站开发项目安全加固的要求免费的商城网站
  • 云主机建多个网站厚街网站建设价格
  • 采集网站如何做营销网站制作比较好的
  • 上海做衣服版的网站建设网站的工具
  • 青岛博海建设网站wordpress 评分点评主题
  • 机械网站怎么做阿里云申请域名
  • 怎么给人介绍自己做的网站网站建设本科毕业设计论文
  • 网站建设联系电话怎么建国外网站
  • 保定定兴网站建设官网网站优化公司
  • 做网站需要ui设计吗廊坊百度推广公司地址