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. .NET CORE 微信小程序消息验证的坑

    进入微信小程序,点击开发->选择消息推送->扫码授权,填写必要参数 进入接口开发: /// <summary> /// 验证小程序 /// </summary> / ...

  2. Ubuntu中目录右下角的锁标志

    在ubuntu中如果是用root权限创建的目录,在普通权限下展示时则会出现一个锁的标志,表明该目录是一个受保护的目录(只读,不能写入和删除),普通权限无法对其进行操作.如用命令sudo mkdir d ...

  3. 解决springmvc返回中文乱码问题

  4. Git学习(二):Git的初步使用

    一.Git的最小配置 1.使用如下命令创建Git的用户名和邮箱,如下所示: $git config --global user.name 'your_name' $git config --globa ...

  5. ASP.NET Core on K8S深入学习(2)部署过程解析与Dashboard

    上一篇<K8S集群部署>中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制,然后部署一下Dashboard,完 ...

  6. 利用dockerfile 安装一个nginx-1.14.1

    FROM docker.io/centos MAINTAINER jim 107420988@qq.com ENV TZ "Asia/Shanghai" #ENV TERM xte ...

  7. go 学习之路(三)

    一.strings和strconv使用 1.strings.HasPrefix(s string,prefix string) bool :判断字符串s是否以prefix开头 2.stings.Has ...

  8. export,export default,module.exports,import,require之间的区别和关联

    module.exports Node 应用由模块组成,采用 CommonJS 模块规范.根据这个规范,每个文件就是一个模块,有自己的作用域.在这些文件里面定义的变量.函数.类,都是私有的,对外不可见 ...

  9. 新IT运维时代 | Docker运维之最佳实践-下篇

    上篇针对操作系统.主机配置.容器镜像.容器运行时四大方面分享一些Docker的运维经验,本篇将着重在Docker Daemon参数和权限两个方面进一步分享.(阅读上篇请点击右侧:新IT运维时代 | D ...

  10. JVM(二):画骨

    ### 概述 我们首先来认识一下`JVM`的运行时数据区域,如果说`JVM`是一个人,那么运行时数据区域就是这个人的骨架,它支撑着JVM的运行,所以我们先来学习一下运行时数据区域的分类和简单介绍. # ...