文档章节

es6学习笔记

激烈的海胆
 激烈的海胆
发布于 2017/06/29 10:43
字数 386
阅读 5
收藏 0
es6

1、解构赋值

数组的解构赋值

let [, , c] = [1, 2, 3]
console.log(c)  // 3
let [x] = []
console.log(x)  // undefined
let [y = 1] = []
console.log(y)  // 1 可以设置默认值

对象的解构赋值

let { a, b } = { b: 'bbb', a: 'aaa'}
console.log(a)  // aaa 不受顺序影响
let { a: b } = { a: 1 }
console.log(a)  // ReferenceError: a is not defined
console.log(b)  // 1   先找到同名的变量然后赋值,真正被赋值的是后面的变量

基本类型的解构赋值

let [a, b, c, d] = '1234'
console.log(a, b, c, d) // 1 2 3 4
let { length: len } = 'abcd'
console.log(len) // 4
let { toString: ts } = 1
let { toString: bs } = true
console.log(ts === Number.prototype.toString)  // true
console.log(bs === Boolean.prototype.toString) // true

 

2、 set

类似于数组,但是成员的值都是唯一的,集合数据解构

let a = new Set([1, 2, 3])  // 创建set
console.log(a.size) // 3  set的属性

set的方法

set.add(value) 添加一个数据,返回数据解构本身

a.add(5).add(8)

set.delete(value)  删除一个数据,返回布尔值表示删除是否成功

a.delete(8)
console.log(a.delete(5))  // true

set.has(value)  判断是否有数据,返回布尔值

console.log(a.has(2))  // true

set.clear()  清空set ,没有返回值

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

set.values()  返回键值的遍历器   === set.key()

set.entries()  返回键值对

let s = new Set([1, 2, 3])
console.log(s.entries()) // SetIterator {[1, 1], [2, 2], [3, 3]}

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

s.forEach(function (value, key, set) {
  console.log(value, key)   // 1 1   2 2   3 3
})

利用set进行数组去重

let arr = [1, 2, 3, 5, 2, 6]
let arrFin = []
console.log(arr)
let s = new Set(arr)
s.forEach(function (key, value, set) {
  arrFin.push(value)
})
console.log(arrFin)  // [1, 2, 3, 5, 6]  去掉了重复的2

© 著作权归作者所有

激烈的海胆
粉丝 0
博文 25
码字总数 7600
作品 0
北京
前端工程师
私信 提问
《ECMAScript 6入门》上线了

过去的一个月,我写了一本书《ECMAScript 6入门》,今天上线了。 网址:es6.ruanyifeng.com ES6是JavaScript语言的下一个版本,预计将在2014年底正式发布。它对JavaScript做了大量改造,提高...

阮一峰
2014/04/30
0
0
es6对象扩展

es6对于对象做了很多扩展,现做以下总结。 特性: ES6 允许直接写入变量和函数,作为对象的属性和方法。 Object.is()方法比较两个值是否严格相等,与===的不同之处在于,+0不等于-0;NaN等于...

tiancai啊呆
2017/10/06
0
0
前端学习笔记!

作为一个前端新人,看了很多关于前端的博客,觉得有必要去记录点知识点和自己的总结,所以在工作之余写了这篇文章,该博客有引用到其他文章的内容,纯属学习,在此膜拜一下各位前端大大。 一...

黑人tao
2017/02/20
0
0
ES6学习笔记(const和let)

前言:这周工作的中心开始倾向于前端了,自己虽然是个后端工程师,不过最终的期望还是倾向于全栈的,自己今年也有意朝着这个方向去努力,因为公司属于创业公司,如果每个人设计的技术层面会更...

程序员小哥哥
2018/06/23
0
0
JavaScript数组去重(12种方法)

数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看。 在真实的项目中碰...

帝子兮
2018/10/09
36
0

没有更多内容

加载失败,请刷新页面

加载更多

cleanLastUpdated.bat

@echo offrem create by AnXiaole rem 这里写你的仓库路径set REPOSITORY_PATH=C:\Users\AnXiaole\.m2\repositoryrem 正在搜索...for /f "delims=" %%i in ('dir /b /s "%REPO......

安小乐
17分钟前
3
0
操作放大器的用法是什么?

  有区别   1、单级放大的倍数比较有限,一般在100倍以下。放大倍数很大的话,负反馈就比较浅,对于放大倍数的稳定性不利。假如需要放大倍数更高,就不得不动用多级放大电路了。单级放大...

仙溪
20分钟前
2
0
c++ 上传文件 curl

bool uploadFile(std::string url, std::string file, std::string auth) { boost::filesystem::path p(file); CURL *curl; CURLcode res; struct curl_httppost *for......

青黑
26分钟前
2
0
冒泡与插入排序的代码实现

// 冒泡排序,a 表示数组,n 表示数组大小public void bubbleSort(int[] a, int n) { if (n <= 1) return; for (int i = 0; i < n; ++i) { // 提前退出冒泡循环的标志位 ...

无名氏的程序员
29分钟前
3
0
centos7.6 +mhvtl1.6安装

以前的mhvtl都是在centos6.x,5.x上安装的mhvtl以前版本为1.4,现在最新的1.6出来,可以安装在centos7.6上,下面是安装过程: 1.安装基础包 centos7.6只要能上外网,默认是配置了yun源的,这些...

突突突酱
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部