当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 前端笔记(二)

前端笔记(二)

2019年10月08日  | 移动技术网IT编程  | 我要评论

解构:es6允许按照一定模式,从数组和对象中提取值,对变量进行赋值。

对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由他的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

变量解构赋值的用途:交换变量的值,从函数返回多个值,函数参数的定义,提取json数据,函数参数的默认值,遍历map解构,输入模块的指定方法。

 

es5中的数据结构,主要是用array和object。在es6中主要新增了set和map数据结构。

能使用map的优先使用,不使用数组,考虑数据的唯一性,考虑使用set,不使用object。

 

symbol:功能类似于一种标识唯一性的id。通常情况下,我们可以通过调用symbol()函数来创建一个symbol实例。每个symbol实例都是唯一的。当你比较两个symbol实例的时候,将会返回false。

symbol的用途:使用symbol来作为对象属性名,使用symbol来定义常量,使用symbol来定义类的私有属性和方法。

注册和获取全局symbol

通常情况下,我们在一个浏览器窗口中,使用symbol()函数定义和symbol实例就足够了。但是,如果你的应用涉及到多个window(最典型的就是页面中使用iframe),并需要这些window中使用的某些symbol是同一个,那就不能使用symbol()函数了,因为用它在不同window中创建的symbol实例总是唯一的,而我们需要的是在所有这些window环境下保持一个共享的symbol。这种情况下,我们就需要使用另一个api来创建或获取symbol,那就是symbol.for(),它可以注册或获取一个window间全局的symbol实例;

 

参考网址:

 

去除数组的重复成员:[...new set(array)]

去除字符串里面的重复字符:[...new set('ababbc')].join('')

array.from可以将set结构转为数组:const items = new set([1, 2, 3, 4, 5]); const array = array.from(items);

这就提供了去除数组重复成员的另一种方法。  function dedupe(array) {   return array.from(new set(array)); }  dedupe([1, 1, 2, 3]) // [1, 2, 3]

 

set.prototype.keys():返回键名的遍历器

set.prototype.values():返回键值的遍历器

set.prototype.entries():返回键值对的遍历器

set.prototype.foreach():使用回调函数遍历每个成员

 

对象的扩展运算符:用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中。

如果扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。

扩展运算符还可以将字符串转为真正的数组,

[...'hello'] // [ "h", "e", "l", "l", "o" ]

任何iterator接口的对象,都可以用扩展运算符转为真正的数组。

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

扩展运算符的应用:

1:合并数组2:与解构赋值结合使用

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网