8 25知识总结

  1. Es6数字新增方法?

    1. Array.from()

    2. Array.of()

    3. find( )

    4. fill( )

    5. for…of

    6. entries( )

    7. copyWithin

    8. findIndex()

    9.  includes() 

    10. reduce()

    11. map()

    12. Filter()

    13. 参考:ES6 数组的扩展_w3cschool

  2. Es6对象新增方法

    1. Object.is()、

    2. Object.assign()、

    3. Object.getOwnPropertyDescriptors()、

    4. Object.setPrototypeOf(),

    5. Object.getPrototypeOf()、

    6. Object.keys(),

    7. Object.values(),

    8. Object.entries()

  3. Es6字符串新增方法

    1. includes()

    2. startsWith()

    3. endsWith()

    4. replace

    5. Repeat

    6. Search

  4. Es6新增特性概述

    1. 扩展运算符

    2. 函数默认参数

  5. Map数据类型

    1. Map和Object有点类似,都是键值对来存储数据,和Object不同的是,JavaScript支持的所有类型都可以当作Map的key

  6.  Set数据类型

    1. Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。

  7. ES6 Promise 对象

    1. 是异步编程的一种解决方案。

    2. 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。

    3. Promise 异步操作有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。除了异步操作的结果,任何其他操作都无法改变这个状态。

    4. Promise 对象只有:从 pending 变为 fulfilled 和从 pending 变为 rejected 的状态改变。只要处于 fulfilled 和 rejected ,状态就不会再变了即 resolved(已定型)。

    5. 状态的缺点:无法取消 Promise ,一旦新建它就会立即执行,无法中途取消。

  8. async和await

    1. 用于声明异步函数,返回值为一个 Promise 对象,它以类似 同步 的方式来写异步方法。

    2. wait 必须在 async function 内使用,否则会提示语法错误;如果 await 后面跟的是其他值,则直接返回该值:

    3. Async和await是promise的语法糖

  9. Es6的模块化

    1. 使用import导入,export导出

    2. 浏览器加载ES6模块,使用<script>标签,但是要加入type="module"属性。

    3. 称之为ES6 Module

    4. 封闭的作用域:代码是在模块作用域之中运行,而不是在全局作用域运行。模块内部的顶层变量,外部不可见

    5. 模块脚本自动采用严格模式,不管有没有声明use strict

    6. 模块之中,可以使用import命令加载其他模块(.js后缀不可省略,需要提供绝对 URL 或相对 URL),也可以使用export命令输出对外接口

    7. 模块之中,顶层的this关键字返回undefined,而不是指向window。也就是说,在模块顶层使用this关键字,是无意义的

    8. 同一个模块如果加载多次,将只执行一次

  10. Ajax

    1. Ajax 全称“Asynchronous JavaScript and XML”,译为“异步 JavaScript 和 XML”,程序员们习惯称之为“阿贾克斯”,它并不是一种技术,而是多种技术的综合体,其中包括 JavaScript、XML、JSON、DOM、CSS、HTML 以及最重要的 XMLHttpRequest 对象。通过 Ajax 可以异步从服务器请求数据并将数据更新到网页中,整个过程不需要重载(刷新)整个网页,可以将网页的内容更快的呈现给用户。

    2. Ajax 的工作原理

      1. JavaScript 需要使用浏览器内置的 XMLHttpRequest 对象向服务器发送 HTTP 请求,并接收服务器响应的数据。

      2. 目前,所有的浏览器(Chrome、Firefox、IE7 及以上版本、Safari、Opera 等)都支持 XMLHttpRequest 对象。所以兼容性非常好

    3. 5个步骤

      1. 创建 XMLHttpRequest对象:var ajax = new XMLHttpRequest()

      2. 规定请求的类型、URL 以及是否异步处理请求:ajax.open('GET',url,true)

      3. 发送信息至服务器时内容编码类型:ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded")

      4. 发送请求:ajax.send();

        ajax.onreadystatechange = function () {

        if (ajax.readyState == 4 && (ajax.status == 200 || ajax.status == 304)){

        Console.log(ajax.response)

        }}

      5. 接受服务器响应数据

  1. 节流与防抖

    1. 防抖:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。

    2. 节流:规定在一个单位时间内,只能触发一次函数。如果这个函数单位时间内触发多次函数,只有一次生效。

    3. 它们都是用来节省性能开销的手段,都是基于闭包实现的。

.ES6字符串方法

includes()**:返回布尔值,判断是否找到参数字符串。
- **startsWith()**:返回布尔值,判断参数字符串是否在原字符串的头部。
- **endsWith()**:返回布尔值,判断参数字符串是否在原字符串的尾部。
- **repeat()**:返回新的字符串,表示将字符串重复指定次数返回。 
- **padStart(length,newStr)**:返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。
- **padEnd(length,newStr)**:返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。
- 模板字符串

     . 可迭代数据类型

     Array

     String

     NodeList      节点列表

新增方法

- forEach
- map
- filter
- some   every
- reduce
- find
- findIndex
- includes
- arr.keys
- arr.values
- arr.toString()
- Array.from

 Map数据类型

- map与Object非常类似
- map与Object的最大区别是:map的key可以是任何数据类型,object的可以只能是字符串

浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。**
- **深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。** 
 

// var obj = {uname:"张三"}
// Object.defineProperty(obj,"aeg",{
//     value:21,
//     enumerable:true ,  //是否可枚举 是否可遍历
//     writable:true,     //是否可写
//     configurable:true  //属性是否可删除
// })
// // console.log(obj);
//     // obj.age=30
//     // console.log(obj);
// //检测是否能删除
// delete obj.age
// console.log(obj);

// for (k in obj){
//     // console.log(k);
//     console.log(obj[k]);
// }

// isfreeze()  冻结  可读 不可写

// var obj = {uname:"湖北",age:5000}
// Object.freeze(obj)
// console.log(obj);
// obj.uname="襄阳"
// obj.age=2000
// console.log(obj);
// isFrozen 检测是否是冻结
// var result = Object.isFrozen()
// console.log(result);


Object.assign ()  //通过复制一个或多个对象来创建一个新的对象。

  ```js
   var obj1 = { uname: "张三", age: 12 }
      var obj2 = { school: "积云教育", address: "海淀" }
  
      //合并对象
      // var result = Object.assign(obj1, obj2)
      // console.log(result)
  
      // console.log(obj1)
  ```

- Object.create () //使用指定的原型对象和属性创建一个新对象。

- Object.defineProperty () //给对象添加一个属性并指定该属性的配置。

- Object.defineProperties ()  //给对象添加多个属性并分别指定它们的配置。

- Object.entries ()  //返回给定对象自身可枚举属性的 [key, value] 数组。

- Object.freeze() //冻结对象:其他代码不能删除或更改任何属性。
    // isfreeze()  冻结  可读 不可写
    // var obj = {uname:"湖北",age:5000}
    // Object.freeze(obj)
    // console.log(obj);
    // obj.uname="襄阳"
    // obj.age=2000
    // console.log(obj);


- Object.getOwnPropertyDescriptor() // 返回对象指定的属性配置。

- Object.getOwnPropertyNames() // 返回一个数组,它包含了指定对象所有的**可枚举或不可枚举**的属性名。

- Object.getOwnPropertySymbols() // 返回一个数组,它包含了指定对象自身所有的符号属性。

- Object.getPrototypeOf() // 返回指定对象的原型对象。

- Object.is() // 比较两个值是否相同。所有 NaN 值都相等(这与==和===不同)。

- Object.isExtensible() //判断对象是否可扩展。

- Object.isFrozen()  //判断对象是否已经冻结。
  // isfreeze()  冻结  可读 不可写

// var obj = {uname:"湖北",age:5000}
// Object.freeze(obj)
// console.log(obj);
// obj.uname="襄阳"
// obj.age=2000
// console.log(obj);
// isFrozen 检测是否是冻结
// var result = Object.isFrozen()
// console.log(result);

- Object.isSealed()  // 判断对象是否已经密封。

- Object.keys()

- Object.values()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值