前端知识(十五)——es6 相关面试总结

简介: 前端知识(十五)——es6 相关面试总结

1、es6 是什么

    新一代的js 语言标准,对其核心做了升级优化,更加适合大型应用开发。

2、箭头函数优缺点

    优点: 1.代码优化     2.this 指向不会变动,永远指向其父元素  

    缺点: 1.没有arguments 参数   2.不能通过 apply call bind改变this指向

   不能用箭头函数的场景: 1.构造函数  2.对象原型  3.对象方法

3、箭头函数怎么获取arguments : 可以使用es6 的解构语法来代替

4、let const var 区别

    相同作用域下,let const 不能重复声明,而var 可以

    var 可以跨块,let  const 不能

    const 定义的常量不能改变,并且必须初始化(注:const 定义的对象,是可以允许修改其属性值的,const 定义的数组,其元素可以被改变。 可以用Object.freeze()来冻结就不可以修改了)

5、es6 对字符串做了哪些升级优化

   新增了模板字符串

   新增方法

             inclueds()  判断是否包含某字符串 返回true/false  

             startsWith() 检测是否以指定字符串开始 返回true/false

             endWith() 检测是否以指定字符串结束 返回true/false

             repeat() 重复字符串多少遍

             padstart() 从头部补全字符串

             padend() 从尾部补全字符串

6、数组方面的优化升级

     数组结构赋值

      扩展运算符 ...

      新增的方法

               find()找到符合条件的第一个元素,并返回,没找到返回 undifined

               includes() 查看是否包含某元素

               fill()用新元素替换数组内元素

               flat() 扁平化数组

 7、number 数值方面的优化升级

      isFinite() 判断有限数

      isInteger() 判断是否为整数

      isNaN() 判断一个值是否为NaN

8、 对象方面的优化升级

     可以直接以变量形式声明

     对象的解构赋值

     对象的扩展运算符

     新增的方法:

               object.is() 接收两个参数,判断两个参数值以及类型,是否相等,返回true/false

               object.assign()将原对象所有的属性,复制到目标对象,(如果后面的参数有一个不是对象,就会抛出typeerror 错误)

                     let obj1 = {a:1}

                     let obj2 = {b:2}

                     consolelog(object.assign({},obj1,obj2)) // {a:1,b:2}

               object.setPrototypeof() 同 proto 设置当前对象的prototype对象

               object.getPrototypeof() 同 proto 读取当前对象的prototype对象

               object.keys() 获取所有键名

               object.values()获取所有键值

               objcet.entries()获取所有键值对数组

9、函数方面的优化升级

     箭头函数

     双冒号运算符::    用来取代,bind/call/apply

10、symblo 是什么?有什么作用?

       es6 引入的新的数据类型,表示独一无二的值

11、set 是什么?有什么作用?

       是array 的一种新的数据结构,它的成员都是唯一的。(这个特性可以实现数组去重)

12、Map()是什么?(map 的遍历顺序是插入顺序)

       是es6 引入的一种新的数据结构,类似于对象,但是键名不仅仅可以是字符串,它可以是任何类型。

13、proxy

        作用:用于创建一个对象的代理,从而实现基本操作的拦截和定义。可以理解成是一种拦截器,在目标对象之前设一层拦截,想要访问必须先通过该拦截

       用法: const p = new Proxy(target, handler)

                   target: 要使用proxy 包装的目标对象

                   handler:以函数作为属性的对象

       常用的拦截方法:

                   apply:拦截函数调用的操作

                   get:拦截对象属性的读取

                   set:拦截对象属性的设置

                    更多es6 新特性 之 Proxy, 这次彻底搞懂 - 掘金

14、promise

       理解: es6 新引入的构造器,用来优化异步代码。解决‘回调地狱’,可读性更高,可以链式调用。

       优点:1、可以链式调用,减低编码难度,2、代码可读性增强。3、对象的状态不受外界影响,状态一旦改变,就不会在变

       promise有3种状态:1、pending(进行中),  2、fulfilled(成功)  3、rejected(失败)    

      状态的缺点: 1、无法取消  2、当pending 时,无法得知当前的状态,时刚刚开始还是即将完成。

    then方法: 接受两个函数作为参数,1:promise 成功的回调。2:promise 失败的回调

                       特点: 1、通过.then添加的回调。不论什么时候,都会被调用。(js 常规写法种,如果未执行完成,就不会调用。)2、可以多次调用

15、for...in  和for ... of 的区别

        for in 一般遍历对象的key .for of 一般遍历数组的value。

16、async 函数是什么?有什么作用

       async 可以理解成,promise 的语法糖,配合promise 更好的实现异步操作。

17、什么是class,作用是什么?extends是什么作用

        可以看作是es5 生成实例对象的构造函数的语法糖。

        作用:定义了类 的概念,写法更加清晰,更像一种面向对象编程

        extends: 新引入的关键字,本质还是构造函数+原型链的继承, 作用是:class 可以通过extends 实现继承。

       class 和es5 的构造函数的区别:1、类内部定义的所有方法,都不可枚举。2、class 必须用new 命令操作。3、class 不存在变量提升,必须先定义才能实例化。4、继承机制不同

18、module、exprot、import  

       是es6 统一前端模块化的设计思想和实现。

       exprot作用:用于从模块中导出内容(函数、对象、原始值),通过import 语句导入使用它们

       exprot default: 用于文件的默认导出接口,一个文件只能有一个

       commonJS 种的reqire(),exprots 组合 与  es module 种的import,export组合

       

相关文章
|
3月前
|
前端开发 JavaScript
JavaScript 面试系列:如何理解 ES6 中 Generator ?常用使用场景有哪些?
JavaScript 面试系列:如何理解 ES6 中 Generator ?常用使用场景有哪些?
|
1月前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
66 1
|
3月前
|
Web App开发 前端开发 Linux
「offer来了」浅谈前端面试中开发环境常考知识点
该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
「offer来了」浅谈前端面试中开发环境常考知识点
|
2月前
|
JavaScript 前端开发 Java
VUE学习四:前端模块化,ES6和ES5如何实现模块化
这篇文章介绍了前端模块化的概念,以及如何在ES6和ES5中实现模块化,包括ES6模块化的基本用法、默认导出与混合导出、重命名export和import,以及ES6之前如何通过函数闭包和CommonJS规范实现模块化。
107 0
VUE学习四:前端模块化,ES6和ES5如何实现模块化
|
2月前
|
JavaScript
震惊了,面试官居然问我ES6中class语法糖是怎么实现的
【10月更文挑战第2天】震惊了,面试官居然问我ES6中class语法糖是怎么实现的
震惊了,面试官居然问我ES6中class语法糖是怎么实现的
|
4月前
|
存储 XML 移动开发
前端大厂面试真题
前端大厂面试真题
|
3月前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
2月前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题
|
3月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
2月前
|
存储 前端开发 JavaScript
关于 ES6 中 Promise 的面试题
关于 ES6 中 Promise 的面试题
19 0