前端知识(十五)——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组合

       

相关文章
|
1月前
|
缓存 前端开发 中间件
[go 面试] 前端请求到后端API的中间件流程解析
[go 面试] 前端请求到后端API的中间件流程解析
|
3天前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
1月前
|
存储 XML 移动开发
前端大厂面试真题
前端大厂面试真题
|
18天前
|
JavaScript 前端开发 API
揭秘现代前端开发秘籍:Vue.js与ES6如何联手打造惊艳应用?
【8月更文挑战第30天】本文介绍如何从零开始使用Vue.js与ES6创建现代前端应用。首先,通过简要介绍Vue.js和ES6的新特性,使读者了解这两者为何能有效提升开发效率。接着,指导读者使用Vue CLI初始化项目,并展示如何运用ES6语法编写Vue组件。最后,通过运行项目验证组件功能,为后续开发打下基础。适用于希望快速入门Vue.js与ES6的前端开发者。
34 3
|
28天前
|
存储 前端开发 JavaScript
44 个 React 前端面试问题
【8月更文挑战第18天】
25 2
|
28天前
|
存储 JavaScript 前端开发
2022年前端js面试题
2022年前端js面试题
21 0
|
29天前
|
存储 前端开发 JavaScript
44 个 React 前端面试问题
44 个 React 前端面试问题
|
1月前
|
存储 JavaScript 前端开发
|
1月前
|
Web App开发 存储 缓存
|
1月前
|
前端开发 容器
前端面试热门问题--浮动和清除浮动(CSS)
前端面试热门问题--浮动和清除浮动(CSS)