2021-05-12

Posted 前端世界升级打怪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-05-12相关的知识,希望对你有一定的参考价值。


ES6新特性分享(四)


spread 扩展运算符


扩展运算符(spread)也是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列,对数组进行解包。

/**
* 展开数组
*/ 
let habits = ['篮球','羽毛球','乒乓球'];
function fn(){
 console.log(arguments);
}
fn(...habits)

Symbol


Symbol 基本使用


ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是
javascript 语言的第七种数据类型,是一种类似于字符串的数据类型。
Symbol 特点
1) Symbol 的值是唯一的,用来解决命名冲突的问题
2) Symbol 值不能与其他数据进行运算
3) Symbol 定义 的 对象属 性 不能 使 用 for…in 循 环遍 历 ,但 是可 以 使 用
Reflect.ownKeys 来获取对象的所有键名

//创建 Symbol
let s1 = Symbol();
console.log(s1, typeof s1);
//添加标识的 Symbol
let s2 = Symbol('奇奇');
let s2_2 = Symbol('奇奇');
console.log(s2 === s2_2);
//使用 Symbol for 定义
let s3 = Symbol.for('奇奇');
let s3_2 = Symbol.for('奇奇');
console.log(s3 === s3_2);

Symbol 内置值



除了定义自己使用的 Symbol 值以外,ES6 还提供了 11 个内置的 Symbol 值,指向语言内部使用的方法。可以称这些方法为魔术方法,因为它们会在特定的场
景下自动执行。

Symbol.hasInstance
当其他对象使用 instanceof 运算符,判断是否为该对 象的实例时,会调用这个方法
Symbol.isConcatSpreadable
对象的 Symbol.isConcatSpreadable 属性等于的是一个 布尔值,表示该对象用于 Array.prototype.concat() 时, 是否可以展开。
Symbol.species
创建衍生对象时,会使用该属性
Symbol.match
当执行 str.match(myObject) 时,如果该属性存在,会 调用它,返回该方法的返回值。
Symbol.replace
当该对象被 str.replace(myObject) 方法调用时,会返回 该方法的返回值。
Symbol.search
当该对象被 str.search (myObject) 方法调用时,会返回 该方法的返回值。
Symbol.split
当该对象被 str.split(myObject) 方法调用时,会返回该 方法的返回值。
Symbol.iterator
对象进行 for...of 循环时,会调用 Symbol.iterator 方法, 返回该对象的默认遍历器
Symbol.toPrimitive
该对象被转为原始类型的值时,会调用这个方法,返 回该对象对应的原始类型值。
Symbol. toStringTag
在该对象上面调用 toString 方法时,返回该方法的返 回值
Symbol. unscopables
该对象指定了使用 with 关键字时,哪些属性会被 with 环境排除。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


结尾

第四弹~~~

以上是关于2021-05-12的主要内容,如果未能解决你的问题,请参考以下文章

2021-05-12

python中日期字符串与datetime类型的相互转换

2021-05-12

2021-05-12

2021-05-12

2021-05-12