1.三种声明方式

  1. var:它是variable的简写,可以理解成变量的意思。
  2. let:它在英文中是“让”的意思,也可以理解为一种声明的意思。
  3. 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','你好啊']
  let arr =Array.of(3,4,5,6);  // 可以转换数字,字符串也是可以转换的
  console.log(arr);
 

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)学习总结的更多相关文章

  1. ES6学习笔记<一> let const class extends super

    学习参考地址1  学习参考地址2 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015:也 ...

  2. ES6学习目录

    前面的话 ES6是JavaScript语言的下一代标准,已经在 2015 年 6 月正式发布.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言 为什么要学 ...

  3. es6学习笔记-class之继承

    继承 上一篇学习了class的概念,在es5时,对象的继承有好几种,原型链继承,借用构造函数继承,组合继承,原型式继承,寄生式继承以及寄生组合式继承,都是按照函数的形式去集成的,现在class也有它的 ...

  4. es6学习笔记-class之一概念

    前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...

  5. javascript的ES6学习总结(第二部分)

    1.数组循环 介绍数组循环之前,先回顾一下ES5数组的循环 (1)数组遍历(代替普通的for):arr.forEach(callback(val,index,arr){todo}) //val是数组的 ...

  6. javascript的ES6学习总结(第一部分)

    ES6(ESNext学习总结——第一部分) ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版. ECMA每年6月份,发布一个版本 201 ...

  7. ES6学习笔记<五> Module的操作——import、export、as

    import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...

  8. ES6学习笔记<四> default、rest、Multi-line Strings

    default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...

  9. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  10. ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

随机推荐

  1. 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 ...

  2. Qt ------ 内存回收机制、new对象的回收

    写在前面的总结: 建议:对于不能指定父对象的对象(对象通过moveToThread()移入其他线程.没有继承QObject的类产生的对象),在其他线程通过deleteLater()内存回收,其他通过指 ...

  3. [技巧篇]10.那些年我们一起优化过的MyEclipse8.6

    这里里面是针对于四海的给位学生预留的视频,请自行下载,我希望对大家有所帮助 我这里使用了百度网盘,这里的东西还是比较多的!如果喜欢请关注我,当好胖先生的粉丝 链接:http://pan.baidu.c ...

  4. 【c#】Tesseract-ocr 3.0.2 版本使用实例

    简介 光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程.OCR技术非常专业,一般多是印刷. ...

  5. redis.conf 配置

    daemonize yes #以后台daemon方式运行redis pidfile "/var/run/redis.pid" #redis以后台运行,默认pid文件路径/var/r ...

  6. MyBatis框架的使用及源码分析(四) 解析Mapper接口映射xml文件

    在<MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder> 一文中,我们知道mybat ...

  7. Python代码解决RenderView窗口not found问题

    源 起 Error:setParent: Object 'renderView' not found 这是一个在工作中很常见的问题,以前做特效的时候有10%的概率会碰到,多发生在打开其他组交接来的Ma ...

  8. Informatica _组件使用介绍及优化

    转载 http://blog.csdn.net/yongjian1092/article/details/52588434 有空自己会写一个关于这方面的文章.

  9. Frogs' Neighborhood(POJ1659+Havel-Hakimi定理)

    题目链接:http://poj.org/problem?id=1659 题目: 题意:根据他给你的每个点的度数构造一张无向图. 思路:自己WA了几发(好菜啊……)后看到discuss才知道这个要用Ha ...

  10. Bagging和Boosting 概念及区别(转)

    Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法.即将弱分类器组装成强分类器的方法. 首先介绍Boot ...