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. 【CYH-02】NOIp考砸后虐题赛:成绩:题解

    这道题挺送水了吧... 两种做法. 其实空间都不需要那么大,我来提交界面一看一堆MLE的,于是还是良心的放开了时限. 这么简单,就不做解释了. 下面放出几种代码. 代码: 两个数组: #include ...

  2. Spring管理事物两种方式

    Spring管理事物两种方式 1. 编程式事物管理(在开发中不经常使用) 使用步骤 1. 配置数据库事物管理 DataSourceTransactionManager <!--配置事物管理器-- ...

  3. 【HDOJ】2104 hide handkerchief

    Problem Description The Children’s Day has passed for some days .Has you remembered something happen ...

  4. 2019暑假集训 BLO

    题目描述 Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. 输入 输入n<=100000 ...

  5. ajax同步与异步 理解

    例如,小明去餐馆排队点餐,前台服务员将小明的菜单告诉厨师进行制作,此时小明后面排队的人就一直等着,直到厨师制作完成,把饭菜送到小明手里后离开,后面的人才能继续点餐:这就是同步处理 但是,如果前台服务员 ...

  6. 【Demo 1】基于object_detection API的行人检测 1:环境与依赖

    环境 系统环境: win10.python3.6.tensorflow1.14.0.OpenCV3.8 IDE: Pycharm 2019.1.3.JupyterNotebook 依赖 安装objec ...

  7. 机房ping监控 smokeping+prometheus+grafana(续) 自动获取各省省会可用IP

    一.前言 1.之前的文章中介绍了如何使用smokeping监控全国各省的网络情况:https://www.cnblogs.com/MrVolleyball/p/10062231.html 2.由于之前 ...

  8. poj 1205 :Water Treatment Plants (DP+高精度)

    题意:有n个城市,它们由一个污水处理系统连接着,每个城市可以选择 1.将左边城市过来的污水和右边城市过来的污水连同本身的污水排到河里  >V< 2.将左边来的污水连同自己的污水排到右边   ...

  9. 反应式微服务框架Flower

    Flower是一个构建在Akka上的反应式微服务框架,开发者只需要针对每一个细粒度的业务功能开发一个Service服务,并将这些Service按照业务流程进行可视化编排,即可得到一个反应式系统. 即时 ...

  10. win10应用商店卸载后重装教程

    方法一 先进这个链接   http://go.microsoft.com/fwlink/?LinkId=619547  下载一个记事本文件,并且把它保存到你的“下载” 里面. 管理员身份打开Power ...