es2015(es6)学习总结
1.三种声明方式
- var:它是variable的简写,可以理解成变量的意思。
- let:它在英文中是“让”的意思,也可以理解为一种声明的意思。
- const:它在英文中也是常量的意思,在ES6也是用来声明常量的,常量你可以简单理解为不变的量。
var a=2;
{
var a=3;
}
console.log(a); // var a=2;
{
let a=3;
}
console.log(a); //
2. 变量的解构赋值
简单的理解就是将等号右边数组或者对象 的元素拆开赋值给相应的变量
数组解构
let [a,b,c]=[1,2,3]; let [a,b="JS"]=['你好',undefined];
console.log(a+b); //控制台显示“你好JS” let [a,b="JS"]=['你好',null];
console.log(a+b); // 你好null
数组作为参数传给函数
let arr = ['hello','world','你好'];
function fun(a,b,c){
console.log(a,b,c);
} fun(...arr); //解构赋值
对象解构
数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值
let {foo,bar} = {foo:'你好',bar:'JS'};
console.log(foo+bar);
let foo;
({foo} ={foo:'JS'});
console.log(foo); //加圆括号,打印不报错
//字符串解构
const [a,b,c,d,e]="Hello";
3.字符串查找
之前用str.indexOf('hello') 来返回hello 在str 字符串中的索引位置,没有则返回-1,es6用 includes 判断返回布尔值
var str = 'hello ,this is my blog';
console.log(str.includes('my')); //true str.startsWith('hello'); //判断开头是否存在 str.endsWith('hello'); //判断结尾是否存在
4.json 数组格式转换
let json = {
'0': 'hello',
'1': 'world',
'2': '你好啊'
}
JSON.stringify(json) // 数组转json字符串 {"0":"hello","1": "world","2": "你好啊"}
let jsonStr ='{"0":"hello","1": "world","2": "你好啊"}'
JSON.parse(jsonStr ) // json字符串转json 对象
es6 中有种特殊的json 格式,可以轻松的将json 对象转换成数组
let json = {
'0': 'hello',
'1': 'world',
'2': '你好啊',
length:3
}
let arr=Array.from(json); //用Array.from(json) 来转换
console.log(arr) //['hello','world','你好啊']
5.Set数据结构
Set数据结构,注意这里不是数据类型,而是数据结构。它是ES6中新的东西,并且很有用处。Set的数据结构是以数组的形式构建的。
let setArr = new Set(['jspang','技术胖','web','jspang']);
console.log(setArr); //Set {"jspang", "技术胖", "web"} //Set值的追加add
setArr.add('前端职场'); // 删除delete
setArr.delete('前端职场'); //查找has
console.log(setArr.has('jspang'));//true //删除clear
setArr.clear(); set的循环 //for…of…循环
for (let item of setArr){
console.log(item);
} //size 属性
console.log(setArr.size); //forEach循环
setArr.forEach((value)=>console.log(value));
es2015(es6)学习总结的更多相关文章
- ES6学习笔记<一> let const class extends super
学习参考地址1 学习参考地址2 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015:也 ...
- ES6学习目录
前面的话 ES6是JavaScript语言的下一代标准,已经在 2015 年 6 月正式发布.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言 为什么要学 ...
- es6学习笔记-class之继承
继承 上一篇学习了class的概念,在es5时,对象的继承有好几种,原型链继承,借用构造函数继承,组合继承,原型式继承,寄生式继承以及寄生组合式继承,都是按照函数的形式去集成的,现在class也有它的 ...
- es6学习笔记-class之一概念
前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...
- javascript的ES6学习总结(第二部分)
1.数组循环 介绍数组循环之前,先回顾一下ES5数组的循环 (1)数组遍历(代替普通的for):arr.forEach(callback(val,index,arr){todo}) //val是数组的 ...
- javascript的ES6学习总结(第一部分)
ES6(ESNext学习总结——第一部分) ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版. ECMA每年6月份,发布一个版本 201 ...
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- ES6学习笔记<三> 生成器函数与yield
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...
- ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
随机推荐
- Codeforces Round #403 (Div. 2) B 三分 C dfs
B. The Meeting Place Cannot Be Changed time limit per test 5 seconds memory limit per test 256 megab ...
- Qt ------ 内存回收机制、new对象的回收
写在前面的总结: 建议:对于不能指定父对象的对象(对象通过moveToThread()移入其他线程.没有继承QObject的类产生的对象),在其他线程通过deleteLater()内存回收,其他通过指 ...
- [技巧篇]10.那些年我们一起优化过的MyEclipse8.6
这里里面是针对于四海的给位学生预留的视频,请自行下载,我希望对大家有所帮助 我这里使用了百度网盘,这里的东西还是比较多的!如果喜欢请关注我,当好胖先生的粉丝 链接:http://pan.baidu.c ...
- 【c#】Tesseract-ocr 3.0.2 版本使用实例
简介 光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程.OCR技术非常专业,一般多是印刷. ...
- redis.conf 配置
daemonize yes #以后台daemon方式运行redis pidfile "/var/run/redis.pid" #redis以后台运行,默认pid文件路径/var/r ...
- MyBatis框架的使用及源码分析(四) 解析Mapper接口映射xml文件
在<MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder> 一文中,我们知道mybat ...
- Python代码解决RenderView窗口not found问题
源 起 Error:setParent: Object 'renderView' not found 这是一个在工作中很常见的问题,以前做特效的时候有10%的概率会碰到,多发生在打开其他组交接来的Ma ...
- Informatica _组件使用介绍及优化
转载 http://blog.csdn.net/yongjian1092/article/details/52588434 有空自己会写一个关于这方面的文章.
- Frogs' Neighborhood(POJ1659+Havel-Hakimi定理)
题目链接:http://poj.org/problem?id=1659 题目: 题意:根据他给你的每个点的度数构造一张无向图. 思路:自己WA了几发(好菜啊……)后看到discuss才知道这个要用Ha ...
- Bagging和Boosting 概念及区别(转)
Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法.即将弱分类器组装成强分类器的方法. 首先介绍Boot ...