1. let  和 const

  只在代码块中有效  {}   js块级作用域。

const 定义的对象是可以改变其属性的

const a =[], b={} ;
a.push(1);
b.a=1; // a [1] b {a:1}

块级作用域 let  const  的特点

{
  let a="outer_a",
b="outer_b";   if (true){    let a = "inside_a";
b = "inside_b";
  }
console.log(a,b)//outer_a inside_b
}

2. 字符串扩展  includes()  代替 indexof();

let s = 'Hello world!';
s.includes('o') // true

3. 箭头函数

var a = (val)=> val;
var b = (a,b)=>{
if(a>b){ return a} }

4. 函数默认值 (必须在后面开始往前 中间不能穿插没有默认值的情况 )

  参数默认值不是传值的,而是每次都重新计算默认值表达式的值。

  (a,b=1,c) ❌

var fun = (a=1,b=2,c=a+b)=>{
console.log(a,b,c)
} fun() //1 2 3
fun(2) //2,2,4

5.数组的扩展

  5.1 扩展运算符 ...   (该运算符主要用于函数调用)

    将数组转为 逗号隔开的 序列。

    

...[1,2,3]  //1,2,3

[...[1,2,3,4],..[5,6,7]]   //[1,2,3,4,5,6,7];

[...[[12],3],[4]] // [ [1,2],3,4 ]

[...[], 1]  // [1]

  

//可以转化伪数组 

[...arguments]

Array.prototype.slice.call(arguments)

//效果一样
//合并数组

a.concat(b)    

[...a,...b]

5.2  代替 apply  方法  的 参数

  fun(null,array)  es6写法 fun(...array)

5.3  解构赋值

  

const [first,...array]  = [1,2,3];

console.log(first) //
console.log(array) //[2,3] const [first1,...array1] = [];
console.log(first1) // undefined
console.log(array1) //[] const [first2,...array2] = [1];
console.log(first1) //
console.log(array2) //[]

扩展符号 赋值只能在最后面一位(只能有一个并且在最后),否则报错  Uncaught SyntaxError: Rest element must be last element

  

//字符串操作

"hello".split("")   // ["h","e","l","l","o"]
[..."hello"] // ["h","e","l","l","o"]

5.4  Array.from(); 将2种对象转为数组;
  5.4.1: array-like-object:   不是数组,但是有 length 属性,且属性值为非负 Number 类型  ( arguments  ,nodeList )

  5.4.2: 可遍历对像

5.5   Array.of(); 将一组值转换为数组  总是返回参数组成的数组,,和Array()有一定差别。

  

Array(1) // [empty]  

Array.of(1) // [1] 

i

6 对象的扩展

  6.1  对象属性和方法的简写

  

var x=1;
var obj = {x} //{"x":1} var objFun = {
method:function(){return true;} ,
methods(){return true;}
}

7 Set和Map

  Set:类似于数组,但是成员是唯一的。Set  本身是构造函数 用来生成 Set  数据结构。

  

const s = new Set([1,2,3,1,2,3]);
[...s] //[1,2,3] 对对象无效。 [...new Set(array)] //简单去重

  Set内部判断相等用的是“===” (但是有一个点是 NaN Set认为相等)  所以 由于两个空对象 是不相等的。  Set  视为2个值

  7.1 Set  的方法

    

var s = new Set([1,2]);
s.add({}) //返回set本身;
s.add({}) s.delete(1) //返回布尔值 是否成功 true
s.delete({}) //false s.has(2) //返回布尔值 是否包含 true
s.has({}) //false s.clear() //清除所有成员没有返回

  7.2 Set遍历操作   keys(); values(); entries(); forEach()

  7.3 WeakSet  :成员只能是对象;不能遍历;

8. Map: 键值对集合,传统的键都只能是字符串;  Map的键可以是对象

  

es6 总结知识点的更多相关文章

  1. ES6重点知识点总结(2)

    ES6重点知识点总结(2) call和apply的作用是什么?区别是什么? call和apply的功能基本相同,都是实现继承或者转换对象指针的作用: 唯一不通的是前者参数是罗列出来的,后者是存到数组中 ...

  2. ES6面试 知识点汇总(全)

    近期在复习ES6,针对ES6新的知识点,以问答形式整理一个全面知识和问题汇总.(全干货,适合对ES6有一定理解的同学复习,以及ES6面试.) 一.问:ES6是什么? 答: ES6是新一代的JS语言标准 ...

  3. ES6 常用知识点总结

    ES6常用知识总结 之前总结了es5中js的一些知识点.这段时间看了石川blue老师讲解的es6课程,结合阮一峰老师的es6教程,随手做了一些笔记和总结分享给大家.内容还是es6主要的知识点,基本没有 ...

  4. ES6常用知识点小结

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准. 因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015(简称ES2015).虽然浏览器在不 ...

  5. ES6部分知识点总结

    注:本文通过yck前端面试小册学习整理而得,记录下来供自己查阅 1.var 变量提升 使用var声明的变量,声明会被提升到作用域的顶部 举几个例子: eg1: console.log(a) // un ...

  6. ES6常用知识点

    一.变量 var:定义的变量有时候会成为全局变量 let:定义的变量严格,只在代码块内有效 const:声明的变量是常量,不能被修改 二.数据类型 字符串 @定义:~字符串定义标记,支持换行.  #常 ...

  7. JavaScript易错知识点整理

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  8. JavaScript 易错知识点整理

    本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES ...

  9. es6 module + webpack

    其实在之前本人就看了 es6 里面的一部分内容,当然是阮一峰大神的 ECMAScript 6 入门. 最近闲来无事又来看下,其中 Module 的语法 这章时候,用里面代码跑的时候,理所当然的报错 S ...

随机推荐

  1. OpenCV4.1.0实践(3) - 图片缩放

    简单的案例: (1)通过比例进行缩放 import cv2 as cv import numpy as np # 图片缩放 img = cv.imread('images/animal.jpg', f ...

  2. MySQL 的数据目录

    MySQL里面有4个数据库是属于MySQL自带的系统数据库: mysql 这个数据库贼核心,它存储了MySQL的用户账户和权限信息,一些存储过程.事件的定义信息,一些运行过程中产生的日志信息,一些帮助 ...

  3. C# 中使用面向切面编程(AOP)中实践代码整洁

    1. 前言 最近在看<架构整洁之道>一书,书中反复提到了面向对象编程的 SOLID 原则(在作者的前一本书<代码整洁之道>也是被大力阐释),而面向切面编程(Aop)作为面向对象 ...

  4. pycharm failed to create JVM

    启动的时候,出现这个error: 解决办法: 如果电脑安装的jdk是64位,找到pycharm的安装目录下的bin目录下的pycharm64.exe.vmoptions文件修改以下值, 如果是32位, ...

  5. Java逆向工程SpringBoot + Mybatis Generator + MySQL

    Java逆向工程SpringBoot+ Mybatis Generator + MySQL Meven pop.xml文件添加引用: <dependency> <groupId> ...

  6. Spring cloud zuul跨域(二)

    使用  CorsFilter  解决ajax跨域问题 直接在zuul的main下面,创建corsFilter就可以了. @SpringBootApplication @EnableZuulProxy ...

  7. [SDOI2017]遗忘的集合

    [SDOI2017]遗忘的集合 综合了很多套路的题 一看就是完全背包 生成函数! 转化为连乘积形式 Pi....=F 求Ln! 降次才可以解方程 发现方程是: f[i]=∑t|i : bool(t)* ...

  8. python之路day11--装饰器形成的过程、作用、装饰器的固定模式

    装饰器形成的过程# 装饰器的作用# 原则:开放封闭原则#装饰器的固定模式 import time # print(time.time()) #1551251400.416998 当前时间() #让程序 ...

  9. Python之file

    读写文件 代码: #读写文件str = """i love China!!i hope everyone save"""#打开并书写文件f ...

  10. 运行adb命令报错adb server version (31) doesn't match this client (39); killing...

    执行adb devices 报错 原因分析: 这个是socket 的端口被占用了,我这里是因为360手机助手占用了这个端口,所以其他的就不能够用了. 解决办法: 卸载了360的手机助手就可以了 首先 ...