Web前端之ES6精选面试题

2022-12-29 0 260

一、ES5和ES6的差别,说呵呵你所晓得的ES6

ECMAScript5,即ES5,是ECMAScript的第六次修改,于2009年顺利完成技术国际标准

ECMAScript6,即ES6,是ECMAScript的第六次修改,于2015年顺利完成,也称ES2015

ES6是继ES5后的一场改良,相对于ES5更为简约,提升了合作开发工作效率

ES6追加的许多优点:

1)let新闻稿表达式和const新闻稿自变量,三个都有块级返回值

ES5中是没块级返回值的,因此var有表达式提升,在let中,采用的表达式很大要展开新闻稿

2)斜线表达式

ES6中的表达式表述无须采用URLfunction(),而要借助了()=>来展开表述

3)模版字符串

模版字符串是增强版的字符串,用反标点符号(`)标记,能当做一般字符串采用,也能用以表述二百一十三字符串

4)重构表达式

ES6 容许依照很大商业模式,从字符串和第一类中抽取值,对表达式展开表达式

5)for of循环式

for…of循环式能结点字符串、Set和Map内部结构、这类类似于字符串的第一类、第一类,和字符串

6)import、export引入求出

ES6国际标准中,Js原生全力支持组件(module)。将JS标记符拆分成相同机能的大块展开模组化,将相同机能的标记符分别写在相同文件中,各组件只需求出公共接口部分,然后通过组件的引入的方式能在其他地方采用

7)set数据内部结构

Set数据内部结构,类似于字符串。所有的数据都是唯一的,没重复的值。它本身是一个构造表达式

8)… 展开运算符

能将字符串或第一类里面的值展开;还能将多个值收集为一个表达式

9)修饰器 @

decorator是一个表达式,用以修改类甚至于是方法的行为。修饰器本质就是编译时执行的表达式

10)class 类的继承

ES6中无须像ES5一样采用原型链实现继承,而要引入Class这个概念

11)async、await

采用 async/await, 搭配promise,能通过编写形似同步的标记符来处理异步流程, 提升标记符的简约性和可读性

async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行顺利完成

12)promise

Promise是异步编程的一种解决方案,比传统的解决方案(回调表达式和事件)更合理、强大

13)Symbol

Symbol是一种基本类型。Symbol 通过调用symbol表达式产生,它接收一个可选的名字参数,该表达式返回的symbol是唯一的

14)Proxy代理

采用代理(Proxy)监听第一类的操作,然后能做许多相应事情

二、采用斜线表达式应注意什么?

(1)用了斜线表达式,this就不是指向window,而要父级(指向是可变的)

(2)不能够采用arguments对象

(3)不能用作构造表达式,这就是说不能够采用new命令,否则会抛出一个错误

(4)不能采用yield命令,因此斜线表达式不能用作 Generator 表达式

三、采用内部结构表达式,实现三个表达式的值的交换

let a = 1;

let b = 2;

[a,b] = [b,a];

四、var、let、const之间的差别

var新闻稿表达式能重复新闻稿,而let不能重复新闻稿

var是不受限于块级的,而let是受限于块级

var会与window相映射(会挂一个属性),而let不与window相映射

var能在新闻稿的上面访问表达式,而let有暂存死区,在新闻稿的上面访问表达式会报错

const新闻稿后必须表达式,否则会报错

const表述不可变的量,改变了就会报错

const和let一样不会与window相映射、全力支持块级返回值、在新闻稿的上面访问表达式会报错

五、如何采用Set去重

let arr = [12,43,23,43,68,12];

let item = […new Set(arr)];

console.log(item); //[12, 43, 23, 68]

六、forEach、for in、for of三者差别

forEach更多的用以结点字符串

for in 一般常用以结点第一类或json

for of字符串第一类都能结点,结点第一类需要通过和Object.keys()

for in循环式出的是key,for of循环式出的是value

七、将下面for循环式改成for of形式

let arr = [11,22,33,44,55];

let sum = 0;

for(let i=0;i

sum += arr[i];

}

答案:

let arr = [11,22,33,44,55];

let sum = 0;

for(value of arr){

sum += value;

}

Web前端之ES6精选面试题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务