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

news/2024/7/11 0:55:29 标签: 前端, 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组合
        


http://www.niftyadmin.cn/n/5254004.html

相关文章

基于AidLux的工业视觉少样本缺陷检测实战应用

1. 模型转换 AIMO网站: http://aimo.aidlux.com/ 试用账号和密码: 账号:AIMOTC001 ,密码:AIMOTC001 上传模型选择目标平台参数设置选择自动转换转换结果并下载 2. 基于AidLux的语义分割模型部署 dataset2aidlux文件…

javaSwing酒店管理

一、介绍 在这篇博客中,我们将介绍一个基于MySQL数据库、Java编程语言和Swing图形用户界面的简单酒店管理系统。该系统包括了查询房客信息、查询房客状态、修改房客信息、添加房间信息、添加住户、退房管理、预定管理、退订管理、入账管理、出账管理、修改资料等多…

javaScript(六):DOM操作

文章目录 1、DOM介绍2、DOM:获取Element对象3、DOM:事件监听3.1、事件介绍3.2、常见事件3.3、设置事件的两种方式3.4、事件案例 1、DOM介绍 概念 Document Object Model ,文档对象模型 将标记语言的各个组成部分封装为对应的对象&#xff1a…

本地团购分销--在您身边的省钱小技巧!APP小程序H5三端源码交付,支持二开!

近年来,本地团购分销市场崛起,给消费者带来了更多选择。本地团购分销平台利用互联网和移动支付技术,将商家和消费者相连,为消费者提供了一站式购物体验。消费者不再需要费尽心思去寻找物美价廉的商品,只需轻轻一点&…

python+gdal地理坐标转投影坐标

1 前言 地理坐标系,是使用三维球面来定义地球表面位置,以实现通过经纬度对地球表面点位引用的坐标系。 地理坐标系经过地图投影操作后就变成了投影坐标系。而地图投影是按照一定的数学法则将地球椭球面上点的经维度坐标转换到平面上的直角坐标。 2 流程…

table中cellspacing、cellpadding的css替代写法

table中cellspacing、cellpadding的css替代写法 table{border:0;margin:0;border-collapse:collapse;border-spacing:0;} /*控制cellspacing*/ table td{padding:0;} /*控制cellpadding*/

js 根据指定日期格式化输出( 刚刚,几分钟前,几小时前,今天,标准日期)

代码如下: function getDateStr(stringTime) {let str stringTime;//将字符串转换成时间格式let timePublish new Date(str);let timeNow new Date();let minute 1000 * 60;let hour minute * 60;let day hour * 24;let month day * 30;let year month * 1…

CSS中常用的10个文本样式属性

一个页面中,文本样式,是必不可少的,当然css也给我们准备了很多很多很多的文本样式,以下列举了10个常用的文本样式属性及常用的属性值,掌握了,也基本满足使用了 1: text-transform 可以用来设置文本的大小写…