1.package.json==>npm init
  1. node_modules==>npm install webpack -D
  2. webpack.config.js==>创建配置文件
  3. 新建public
  4. 新建src
  5. src里新建index.html,index.js
  6. src里新建js文件夹,js文件夹下简历01.js
如图:
函数-默认值-箭头函数
 
js  ...test参数
 
{
function fn(...test) {
console.log(test)
}
fn(1, 2, 3, 4, 5, 6, 7)
}
结果: (7) [1, 2, 3, 4, 5, 6, 7]
 
//箭头函数
(参数,参数)=>{
  }
  • 不能new
  • this指向
  • 没有arguments
 
{
// 第一种箭头函数
let fn = v => v;
console.log(fn(10));
 
//等同于第二种声明函数
let fn1 = function(v) {
return v;
}
console.log(fn1(20))
}
 
数组的扩展
  • 运算符 (...test)
  • 方法
  1. Array.from();   把一个看起来类似于数组的对象,转成真正的数组
         例子:
{
let span = document.getElementsByTagName("span");
console.log(typeof(span)); //类似于数组的对象
 
let arr = Array.from(span); //Array.from()把类似于数组的对象转成数组
console.log(arr);
}
     2.Array.of();    把一组值,转换为数组
     3.copyWithin()  ;  把指定位置的成员复制到其他位置 (会覆盖原有成员)
         参数1:target  从该位置开始替换 ,如果为负值,表示倒数
         参数2:start    从该位置开始读取数据,默认为0 。如果为负值,表示从末尾开始计算。
         参数3:end      到该位置前停止读取数据,默认等于数组长度。如果为负值,表示从末尾开始计算。
4.find()
用于找出第一个符合条件的数组成员,如果没有符合条件的,返回undefined;
[1, 5, 10, 15].find(function(value, index, arr) {
return value > 9;}) // 10
 
上面代码中,find方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。
5.findIndex()
用于找回第一个符合条件的数组成员的索引位置,如果都不符合条件,则返回-1
6.fill()  填充数组
参数1:填充的内容
参数2:起始位置
参数3:结束位置;
{
let arr = ['a', 'b', 'c'];
arr.fill('o', 1, 2);
console.log(arr); //['a','o','c'];
}
 
7.entries(),keys(),values()
  • entries()  是对键值对的遍历
  • keys()是对键名的遍历
  • values()是对键值对的遍历
 
{
let arr = ['a', 'b', 'c'];
 
for (let [k, v] of arr.entries()) {
console.log(k, v);
}
}
 
 
8.includes();  查看数组是否包含某个值,返回的是布尔值
  包含返回true,否则返回false
 
 
对象的扩展
  • 1.属性的简介表示法
let a = "简单写法";
{
 
let obj = {
a //属性名和变量名字一样,简单化
}
console.log(obj.a);
}
  • 2.属性名表达式
  • 3.方法的name属性
let obj = {
run() {
return '我是谁'
}
}
console.log(obj.run.name) //获取函数名称是什么,
也就是run
  • 4.Object.is()
ES5 比较两个值是否相等,只有两个运算符:相等运算符(`==`)和严格相等运算符(`===`)。它们都有缺点,前者会自动转换数据类型,后者的`NaN`不等于自身,以及`+0`等于`-0`。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。
 
ES6 提出“Same-value equality”(同值相等)算法,用来解决这个问题。`Object.is`就是部署这个算法的新方法。它用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。
  • 5. `Object.assign`方法  特别常用
用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。
例子:
const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
console.log(target);
  • 6.属性的可枚举性和遍历
      Object.getOwnPropertyDescriptor  方法可以获取该属性的描述对象。
 
7.Object.entries(),Object.keys(),Object.values()
 
class类
基本语法:
demo:
class aa {
constructor(name, age) {
this.name = name;
this.age = age;
}
run() {
return '你会class类了吗';
}
init() {
return '初始化';
}
}
let bb = new aa(name = '小仙女', age = 15);
console.log(bb);
console.log(bb.run());
console.log(bb.init());
class  继承性
 
// 继承属性extends
class Child extends Parent {
constructor() {
super(); //继承属性必须用super,放置在构造函数的最前面
this.age = 17;
}
}
// let aa = new Parent();
let bb = new Child();
// console.log(aa.name);
console.log(bb.age);
 
 
Symbol
作用:解决命名冲突
概述:
  • 新的数据类型,
  • 表示独一无二的值
使用:
  •   Symbol
  •   Symbol.for()  
方法:
      取值
  •       Object.getOwnPropertySymbols()  返回的是数组  
  • Reflect  可以拿到Symbol,也可以拿到其他值
            Reflect.ownKeys(obj)  返回的是个数组
Set,WeakSet
  Set 
     是什么?
  • 新的数据结构,类似于数组
  • 值都是唯一
     使用方法:
  • new Set();
  • add:增
  • size:lengtg
  • clear:全删
  • delete :删除某一个
  • has:查  
       例子:
 var set2 = new Set(); //先new一个Set
 set2.add('1'); //Set(1) {"1"}
 set2.add(10);
//set2.size 1
//set2.clear(); //删除所有内容
//set2.delete(10) //删除10
console.log(set2.has(10)); //包含10,返回true
 
     功能:
      强大的去重功能,要看数据类型的
     
let arr = [1, 2, 3, 12, 2, 3, 4];
let set1 = new Set(arr);
console.log(set1);
 
 
 
3.遍历
4.WeakSet
     与Set区别 
  •        new Set()
  •        new WeakSet({})
  1.                值必须是对象
  2.                方法:只有add,delete,has 
  3.                不可遍历 
    
Map
  •     数据结构
  •     map的作用
  1.        key可是是数组,字符串
  •     方法:
  1. size:长度
  2. delete 删除   clear 全部清除
  3. set  增加
  4. get  查询
  5. has  表示某个键是否在当前Map对象之中
  •  遍历      
  1. Map.prototype.keys():返回键名的遍历器。
  2. Map.prototype.values():返回键值的遍历器。
  3. Map.prototype.entries():返回所有成员的遍历器。
  4. Map.prototype.forEach():遍历 Map 的所有成员。
WeakMap()
      Map和WeakMap区别
  1. 没有遍历操作
  2. 无法清空,不支持clear,因此只有四个方法可用:get(),set(),has(),delete()
  3. 垃圾回收机制
 
proxy (代理)
      理解:
  1. 源对象  类似于供应商
  2. 代理      类似于代理商
  3. 操作     类似于用户
      使用(拦截):
  1. get():拦截对象属性的读取
  2. set():拦截对象属性的设置
  3. deleteProperty():拦截删除对象key操作的操作
 
Reflect(反射):
对象的设计目的:
  1. 以后方法都只会在Reflect对象上
  2. 修改某些object方法的返回结果
  3. 让object 操作都变成函数行为
  4. Reflect对象的方法与Proxy对象的方法一一对应,只要是Proxy对象的方法,就能在Reflect对象上找到对应的方法。
方法(使用):
  1. Reflect.apply(target, thisArg, args)
  2. Reflect.construct(target, args)
  3. Reflect.get(target, name, receiver)
  4. Reflect.set(target, name, value, receiver)
  5. Reflect.defineProperty(target, name, desc)
  6. Reflect.deleteProperty(target, name)
  7. Reflect.has(target, name)
  8. Reflect.ownKeys(target)
  9. Reflect.isExtensible(target)
  10. Reflect.preventExtensions(target)
  11. Reflect.getOwnPropertyDescriptor(target, name)
  12. Reflect.getPrototypeOf(target)
  13. Reflect.setPrototypeOf(target, prototype)
 
Promise
理解:解决异步编程的一种方案,让异步编程写法感觉像是同步感觉

es6 个人笔记的更多相关文章

  1. ES6入门笔记

    ES6入门笔记 02 Let&Const.md 增加了块级作用域. 常量 避免了变量提升 03 变量的解构赋值.md var [a, b, c] = [1, 2, 3]; var [[a,d] ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. ES6读书笔记(三)

    前言 前段时间整理了ES6的读书笔记:<ES6读书笔记(一)>,<ES6读书笔记(二)>,现在为第三篇,本篇内容包括: 一.Promise 二.Iterator和for of循 ...

  9. ES6读书笔记(二)

    前言 前段时间整理了ES6的读书笔记:<ES6读书笔记(一)>,现在为第二篇,本篇内容包括: 一.数组扩展 二.对象扩展 三.函数扩展 四.Set和Map数据结构 五.Reflect 本文 ...

  10. ES6学习笔记之块级作用域

    ES6学习笔记:块级作用域 作用域分类 全局作用域 局部作用域 块级作用域 全局作用域示例 var i=2; for (var i = 0; i < 10; i++) { } console.l ...

随机推荐

  1. Spring Boot 整合 Shiro实现认证及授权管理

    Spring Boot Shiro 本示例要内容 基于RBAC,授权.认证 加密.解密 统一异常处理 redis session支持 介绍 Apache Shiro 是一个功能强大且易于使用的Java ...

  2. Windows Presentation Foundation (WPF) 项目中不支持xxx的解决

    一般Windows Presentation Foundation (WPF) 项目中不支持xxx都是由于没引用相应的程序集导致,比如Windows Presentation Foundation ( ...

  3. c++小游戏:洛谷彩票

    #include <cstdlib> #include <iostream> #include <cstdio> #include <cmath> #i ...

  4. NOIP2018&2013提高组T1暨洛谷P5019 铺设道路

    题目链接:https://www.luogu.org/problemnew/show/P5019 花絮:普及蒟蒻终于A了一道提高的题目?emm,写一篇题解纪念一下吧.求过! 分析: 这道题我们可以采用 ...

  5. JS系列1---节流,去抖(防抖)应用场景:intput请求优化,页面监听

    在项目开发过程中经常遇到在input的change事件中发起请求,将用户最新输入的字符作为data传给后台,但是如果用户的输入频率过高,或者用户输入的字符还未拼成一个完整的字词,这时候发起请求会浪费网 ...

  6. 安卓BindService笔记

    1 前言 最近学习到了安卓的service,记录一下自己对BindService的理解,学习教程以及部分代码来自菜鸟教程的android教程:菜鸟教程安卓端BindService链接 2 正文 先贴一 ...

  7. c++ 动态规划(数塔)

    c++ 动态规划(dp) 题目描述 观察下面的数塔.写一个程序查找从最高点到底部任意位置结束的路径,使路径经过数字的和最大. 每一步可以从当前点走到左下角的点,也可以到达右下角的点. 输入 5 13 ...

  8. SQL SERVER Suspect(质疑/挂起) 状态恢复

    数据库服务器,在断电时,偶尔会出现Suspect状态,导致数据库无法使用. 解决办法如下: 数据库名带‘[]’可以避免库名中带‘.’等特殊符号的情况. USE [master]GOALTER DATA ...

  9. Java--重载与重写的区别

    1.重写必须继承,重载不用.2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同.3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关.4.重写不可以抛出父类没有抛出的一般 ...

  10. CentOS EPEL yum源

    CentOS EPEL yum源 用yum安装软件时,经常发现我们的yum源里面没有该软件,比如htop.网上查到的一个方案是需要自己去wget源码,然后configure,make,make ins ...