ES6-ES13用法(高频面试题)

这篇具有很好参考价值的文章主要介绍了ES6-ES13用法(高频面试题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. ES6新增的方法
  • let和const,解构赋值、模板字符串、箭头函数。

  • Symbol、Map、Set三种常用的数据类型。

  • Proxy重新定义了数据劫持的能力

  • Reflect定义了一套标准化的数据操作的方式

  • Promise确实的解决了异步逻辑嵌套及回调地狱问题。定义了异步逻辑的三种状态pending、rejected、fullfilled, 搭配then、catch、all、race等方法以及async await语法糖,大量简化了异步操作。

  • Generator函数,可以将异步逻辑划片执行。

    • Generator 函数是 ES6 提供的一种异步编程解决方案

    • Generator 函数是一个状态机,封装了多个内部状态。

    • 执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。

  • 新增了class类的概念

  • ES6 Modules

2. var, let, const的区别

     ES6新增了定义变量的关键字 let和const, 分别用于定义块级变量和常量

     let, const不会声明提前, 存在暂时性死区

     外部无法使用到内部的let和const定义的变量, 存在块级作用域限制]

const 定义的常量, 无法更改。

  if(true){
       let name ="kerwin"
   }
   
   const obj = {name:"kerwin"}
   obj.name="xiaoming"
   // obj = {name:"xioamng"}
   // obj= 'dwadwa'
3. 箭头函数

箭头函数是ES6推出的,所以在低版本浏览器是有兼容问题的,语法简介明了,逻辑更清晰。

箭头函数没有自己的this,this指向外部的this,并且this会在创建的时候就绑定好.

const fn1 = function() {
  console.log(this)
}
fn1() // window
const obj = {  
  name: 'tom',  
  fn2 () {    
    fn1() // window    
    console.log(this) // obj  
  }
}
obj.fn2()
​
// 在箭头函数定义的位置往上数,这一行是可以打印出 this 的
// 因为这里的 this 是 window
// 所以箭头函数内部的 this 就是 window
const obj = {
  fn: function () {
    console.log(this)
  },
  // 这个位置是箭头函数的上一行,但是不能打印出 this
  fun: () => {
    // 箭头函数内部的 this 是书写箭头函数的上一行一个可以打印出 this 的位置
    console.log(this)
  }
}
​
obj.fn()
obj.fun()
4. 解构
	let {type,payload} = data;  // {type:"",payload:""}
5 ... 展开合并
    [...arr1,...arr2]   
    {...obj1,...obj2} 
6. promise
    //异步处理方案
    1. 回调函数
    2. Promise
    3. generator 生成器 yield 
    4. async await
​
    //解决回调地狱 ,嵌套金字塔
    
    function test1(){
        return new Promise((resolve,rejet)=>{
            setTimeout(() => {
                resolve("123")
            }, 2000)
        })
    }
    
    test1().then(res=>{
    
    }).catch(error=>{
    
    })
    // pending reject fullfilled
    
    axios.get("1.php").then(res=>{
        return axios.get(2.php,{res})
    }).then(res=>{
        return axios.get(3.php)
    }).then(res=>{
        console.log(res.data)
    }).catch(error=>{
        console.log(error)
    })
    async await 写起来
    
    async function test(){
        var a = await axios.get(1);
        var b= await axios.get(2,{a});
        var c= await axios.get(3,{b})
        console.log(c);
    }
    
    test()
    
    //所有的异步都结束
    Promise.all([axios.get(1),axios.get(2)]).then(res=>{
        //loading隐藏
    }).catch(error=>{
    
    })
    
    Promise.race([axios.get(1),axios.get(2)])
​
    `Promise.any()`跟`Promise.race()`方法很像,只有一点不同,就是`Promise.any()`不会因为某个 Promise 变成`rejected`状态而结束,必须等到所有参数 Promise 变成`rejected`状态才会结束。
7 .class (语法糖 => 构造函数,babel-loader)
   class Person{
        constructor(name,age) {
          this.name = name;
          this.age =age;
        }
        say=()=>{
    
        }
    }
    
    class Test extends person{
        constructor(name,age,location) {
          super(name,age);
          this.location = location;
        }
       
    }
8 .模块化
   import obj from "./a" ;  
    export default aaa;
    
    import {test} from "./b" ; 
    export {test} ; 
    export var test =function(){}
 
​
    AMD - 前端 异步加载 - 提前下载, 提前加载 require.js
    CMD -  异步加载 - 提前下载 , 按需加载 -- 玉伯 -sea.js
    CommonJs -同步加载(webpack)
        require("./b")    
        =>module.exports 
        =>exports
    ES6 - 模块化
    
    //ES6 和 commonJS区别?
    //ES6可以导入某几个接口 import {a} from './module.js' + webpack- tree shaking 摇树优化
​
    //commonJS 导入整个文件
9. 异步遍历器生成函数(大厂面试)

Generator 函数返回一个同步遍历器,异步 Generator 函数的作用,是返回一个异步遍历器对象。在语法上,异步 Generator 函数就是async函数与 Generator 函数的结合。文章来源地址https://www.toymoban.com/news/detail-823694.html

function timer(t) {
      return new Promise(resolve => {
          setTimeout(() => {
              resolve(t)
          }, t)
      })
 }
​
​
async function* fn() {
    yield timer(1000)//任务1
    yield timer(2000)//任务2
    yield timer(3000)//任务3
}
​
// 使用一下 for await ...of
async function fn1() {
    for await(const val of fn()) {
        console.log("start",Date.now())
        console.log(val);
        console.log("end",Date.now())
    }
}
fn1();

到了这里,关于ES6-ES13用法(高频面试题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第一章前端开发ES6基础

    认识ES6 概述 ES6表示ECMAScript规范的第六版,正式名称为 ECMAScript 2015 ,ECMAScript是由ECMA国际标准组织制定的一项 脚本语言 的标准规范化,引入了许多新特性和语法。 其中包括 箭头函数、let和const声明、类、模板字符串、解构赋值、参数默认值、展开操作符、Promise 等等。这些

    2024年02月08日
    浏览(51)
  • 第二章前端开发ES6基础

    目录 扩展运算符 概述 语法 应用 模板字符串 概述 应用 内置对象扩展 概述 数组扩展方法 字符串扩展方法 set数据结构 概述 基本使用 操作方法 遍历方法 认识symbol 概述 作用 基本使用 项目 扩展运算符 概述 扩展运算符(spread operator)是 ES6 中新增的一种运算符,用 三个点(

    2024年02月07日
    浏览(49)
  • 想成为开发程序员,这套es6面试题要掌握

    1、es5和es6的区别,说一下你所知道的es6 ECMAScript5,即ES5,是ECMAScript的第五次修订,于2009年完成标准化ECMAScript6,即ES6,是ECMAScript的第六次修订,于2015年完成,也称ES2015ES6是继ES5之后的一次改进,相对于ES5更加简洁,提高了开发效率ES6新增的一些特性: 1)let声明变量和const声

    2024年02月08日
    浏览(54)
  • 13、Redis高频面试题

    我们项目中之所以选择Redis,主要是因为Redis有下面这些优点: 操作速度快:Redis的数据都保存在内存中,相比于其它硬盘类的存储,速度要快很多 数据类型丰富:Redis支持 string,list,set,Zset,hash 等数据类型,基本满足我们开发中的各种使用场景 使用场景丰富:Redis可用于

    2024年02月02日
    浏览(33)
  • ES6——ES6相关面试题分享

    文章目录 前言 一、什么是ES6,以及引入ES6的原因 二、let,var,const三者的区别。 三、运用ES6如何合并两个对象? 四、for...in 和for...of有什么区别。 五、 箭头函数的this和普通函数的this的区别。 六、Es6中如何定义模板字符串,有什么好处。 七、Array的扩展方法map和filter相同

    2024年02月15日
    浏览(42)
  • 【ES6】Promise.all用法

    Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 上面代码中,Promise.all()方法接受一个数组作为参数,p1、p2、p3都是 Promise 实例,如果不是,就会先调用下面讲到的Promise.resolve方法,将参数转为 Promise 实例,再进一步处理。另外,Promise.all()方法的参数可以

    2024年02月09日
    浏览(35)
  • 【ES】笔记-ES6的函数rest参数用法

    es6中引入了rest参数,样式形如…xxx,用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的一个变量是一个数组,该变量将多余的参数放入数组中。例如: 上面代码的add函数是一个求和函数,利用rest参数,可以向该函数传入任意数目的参数。 下面是一

    2024年02月13日
    浏览(40)
  • 【JavaScript】数组方法 (ES6)

    arr.find(callback) 用于获取第 1 个符合要求的元素: callback : (item, index, arr) = boolean item -当前值、 index -当前索引、 arr -当前数组 返回值: callback 第一次返回 true 的对应 item ;如果没有符合的元素,则返回 undefined arr.findIndex(callback) 用于获取第 1 个符合要求的元素的下标: cal

    2024年02月14日
    浏览(59)
  • JavaScript ES6实现继承

    1 对象的方法补充 2 原型继承关系图 3 class方式定义类 4 extends实现继承 5 extends实现继承 6 多态概念的理 function 创建的名称如果开头是大写的,那这个创建的不是函数,是创建了类。 可以把class创建的类当做是function创建的类的一种语法糖。但是在直接使用的方面是有不同之处

    2024年02月16日
    浏览(48)
  • 9、ES高频面试题

    倒排索引是搜索引擎的核心,它是一种像数据结构一样的散列图,可将用户从单词导向文档或网页。主要目标是快速从数百万文件中查找数据 倒排索引主要体现在文档的保存和查询流程中 保存文档时,会先根据文档进行分词,然后使用分好的词条作为key进行排序,然后将文

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包