1.ES6的兼容性

常用的是babel(也叫做browser.js);

用法: 直接在script中引用,把相应的script里面的type设置为text/babel

2.箭头函数

注意:1.如果只有一个参数,可以省略();

 let show = x =>console.log(x*2); show(2);    //

2.如果只有一个return,可以省略{};

 let arr = [1,2,578798,5656]; arr.sort((n1,n2)=>n1-n2); console.log(arr);   //  1,2,5656,578798

3.函数扩展

(1) 收集剩余参数, 参数扩展(展开) ...

作用: 1. 是剩余参数,收集所有剩余的参数,但是只能在最后一个参数;

2.展开数组

1.   ...Array (...是剩余参数,收集所有剩余的参数);

function show5 (a,b,...args){
console.log(a); //
console.log(b); //
console.log(args); //5,65,45
}
show5(2,3,5,65,45);

注意:剩余参数只能在最后一个参数;

.2.展开数组
   使用...展开数组的效果就跟把数组的内容写在这儿一样

let arr = [1,2,3];
console.log(...arr); // 1 2 3 let arr1 = [1,2,3];
let arr2 = [4,5,6];
let arr3 = [...arr1,...arr2]; //等同于 let arr3 = [1,2,3,4,5,6];
console.log(arr3); //1,2,3,4,5,6 function a6 (...args) { //js内部认为这参数就是一个数组
fn2(...args); //直接展开数组,等同于fn2(12,5);
}
function fn2(x,y) {
console.log(x+y);
}
a6(12,5); //

(2)默认参数 (类似于java的构造函数一样)

没有就给默认的,传就给传的

function b (a,b=5,c=12){
console.log(a,b,c);
}
b(99,19);//99 19 12

4.解构赋值

注意三点:1)左右两边解构必须一致

2)右边必须是个东西(合法)

3)声明和赋值不能分开

let [b,f,g] = [1,2,3];
console.log(b,f,g); //1 2 3 左右两边都是数组 let {m1,n1} = {m1:12,n1:13};
console.log(m1,n1); //12 13 左右两边都是json //复杂的解构赋值
let [{a1,b1},[num1,num2],num,str] = [{a1:12,b1:14},[23,13],12,'chen'];
console.log(a1,b1,num1,num2,num,str); //12 14 23 13 12 "chen" let [json,arr,nums,strs] = [{k1:12,k2:13},[3,4],23,'chen'];
console.log(json,arr,nums,strs);//{k1: 12, k2: 13} (2) [3, 4] 23 "chen" //错误示范
let [a,b] ={a:2,b:3}; //左右两边不一致
let [u,p] = {2,3}; //右边不是合法的东西
let [a,b,c];
[a,b,c] =[1,2,3] //声明和赋值分开

5.数组

1)map  映射 一对一 (给你几个返回几个)

2)reduce 汇总 (多个进一个出)

3)filter  过滤器

4)forEach  循环(几个循环的对比)没有返回值

map的应用

let arr = [12,33,34];
let result = arr.map(function(item){
return item*2
})
console.log(result); //[24, 66, 68] let arr = [12,33,34];
let result = arr.map(item=>item*2)
console.log(result); //[24, 66, 68] let arr = [23,98,97,90];
let result = arr.map(item=>item>=60?'及格':'不及格');
console.log(result); //不及格,及格,及格,及格

filter的应用 (根据true和false来进行筛选)

let arr4 = [12,56,58];
let result4 = arr4.filter(function(item){
return item%3==0;
})
console.log(result4); // let people =[
{
name: 'uknow',
age:25
},
{
name:'hero',
age:25
},
{
name:'micky',
age:24
},
{
name:'xiah',
age:24
},
{
name:'max',
age:22
}
];
let age = people.filter(item=>item.age>24);
console.log(age); //[{age: 25,name: "uknow"}, {age: 25,name: "hero"}]

forEach的应用

let arr = [2,5,12];
arr.forEach((item,index)=>{
console.log(item) //2 5 12
})

1、for...in循环:可以把一个对象的所有属性依次循环出来。

var o ={
name:"jack",
age:20,
city:"beijing"
};
for (var key in o){
alert(key) //"name","age","city"
} 由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,forj...in循环可以直接循环出Array的索引。 var a =["A","B","C"];
for (var i in a){
alert(i); //"0","1","2"
alert(a[i]); //"A","B","C"
}

总结:for...in循环的是对象的属性;所以便利数组得到的是索引而不是值;所以要遍历数组,可以采用下标循环。

for...in对Array的循环得到的是String而不是Number。

2、for...of循环:ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型;

具有iterable类型的集合可以通过for...of循环来遍历;

只循环集合本身的元素。

用for...of循环遍历集合,用法如下:

var a = ["A","B","C"];
var s = new Set(["A","B","C"]);
var m = new Map([[1,"x"],[2,"y"],[3,"z"]]);
for (var x of a){
alert(x); A B C
}
for (var x of s){
alert(x); A B C
}
for (var x of m){
alert(x[0]+"="+x[1]); 1=X 2=Y 3=Z
}

6.字符串

1)startsWith  (以什么开头)

2)endsWith   (以什么结尾)

3)模板字符串

ES6的相关语法的更多相关文章

  1. sublime Emmet的用法及相关语法

    本节来讲一下Emmet插件的用法及相关语法. Emmet插件极大的提高了编程员的编程速度,下面我们来讲讲它的具体语法: 一.生成 HTML 文档初始结构 HTML 文档的初始结构,就是包括 docty ...

  2. [js高手之路] es6系列教程 - new.target属性与es5改造es6的类语法

    es5的构造函数前面如果不用new调用,this指向window,对象的属性就得不到值了,所以以前我们都要在构造函数中通过判断this是否使用了new关键字来确保普通的函数调用方式都能让对象复制到属性 ...

  3. HTML基础-------最初概念以及相关语法

    HTML概念以及相关语法 HTML HTML是一种类似于(c,java,c++)之类的语言,他是用来描述网页的一种语言.通过各种标签所代表的语义来构建出一个网页,再通过浏览器的渲染功能来实现该网页的各 ...

  4. innobackupex 相关语法讲解【转】

    innobackupex 相关语法讲解 连接服务器 The database user used to connect to the server and its password are speci ...

  5. 比较C++、Java、Delphi声明类对象时候的相关语法

    同学们在学习的时候经常会遇到一些问题,C++.Java.Delphi他们到底有什么不一样的呢?今天我们来比较C++.Java.Delphi声明类对象时候的相关语法.希望对大家有帮助! C++中创建对象 ...

  6. es6常用的语法

    刚开始用vue或者react,很多时候我们都会把ES6这个大兄弟加入我们的技术栈中.但是ES6那么多那么多特性,我们需要全部都掌握吗?秉着二八原则,掌握好常用的,有用的这个可以让我们快速起飞. 接下来 ...

  7. Mysql表结构定义及相关语法

    mysql语法及相关命令1.每个sql命令都需要使用分号来完成2.可以将一个命令写成多行3.可以通过\c来取消本行命令4.可以通过\g.exit.ctrl+c或者quit来退出当前客户端5.可以通过使 ...

  8. es6的常用语法

    最常用的ES6特性 let, const, class, extends, super, arrow functions, template string, destructuring, defaul ...

  9. 详细分析SQL语句逻辑执行过程和相关语法

    本文目录: 1.SQL语句的逻辑处理顺序 1.2 各数据库系统的语句逻辑处理顺序 1.2.1 SQL Server和Oracle的逻辑执行顺序 1.2.2 MariaDB的逻辑执行顺序 1.2.3 M ...

随机推荐

  1. ambassador对websocket的支持示例

    今天进展神速,ambassador对websocket的支持也调通啦.. 一,关键yaml文件 --- apiVersion: v1 kind: Service metadata: labels: n ...

  2. for循环结构

    循环结构: 在程序当中总有一些需要反复/重复的执行的代码,假设没有循环结构,那么这段需要重复知心的需要重复执行的代码自然是需要重复编写的,代码无法得到重复使用.所以多数变成语言都是支持循环结构的.将来 ...

  3. CF613B Skills

    CF613B Skills 洛谷评测传送门 题目描述 Lesha plays the recently published new version of the legendary game hack ...

  4. Educational Codeforces Round 78 (Rated for Div. 2) 题解

    Shuffle Hashing A and B Berry Jam Segment Tree Tests for problem D Cards Shuffle Hashing \[ Time Lim ...

  5. Excel已损坏,无法打开

    突然之间,很多EXCEL文件打开时报错:"已损坏,无法打开",这些文件共同点是从邮件中下载而来,这些文件可能面临着安全威协,原来是软件设置了受保护的视图,取消即可.

  6. SUDO_KILLER可以帮助你识别并利用错误的Sudo规则与配置

    工具概述 SUDO_KILLER这款工具可以帮助我们通过多种渠道利用SUDO来在Linux环境下实现提权.该工具能够识别目标操作系统版本,并发现环境中sudo规则的错误配置.安全漏洞,以及不安全的代码 ...

  7. 深度解密Go语言之unsafe

    目录 指针类型 什么是 unsafe 为什么有 unsafe unsafe 实现原理 unsafe 如何使用 获取 slice 长度 获取 map 长度 map 源码中的应用 Offsetof 获取成 ...

  8. 海边拾贝-C-面试篇

    优秀的面试资料,不定期会更新: Leetcode上面别人整理的若干面试资料: https://github.com/huihut/interview 剑指offer:https://blog.csdn ...

  9. 解决静态方法调用注入的service

    在使用jpa的复杂查询时,声明了specification时声明为静态方法,导致注入的service无法使用,故想到俩种方式,一种手动注入,一种注解注入,此文使用的时注解注入: 解决静态方法调用注入的 ...

  10. Springboot创建项目(idea版本)

    一:概述 由于springboot项目,不管是java工程还是web工程都可以直接以jar方式运行,所以推荐创建jar工程,这里创建jar工程项目为例. 二:两种方式创建springboot项目 1. ...