前端面试题集锦(3)
创始人
2024-03-08 21:45:48

目录

1、解释一下什么是闭包 ?

2、解释一下原型和原型链 ?

3、说一下 ES6 中你熟悉的一些内容 ?

4、数组排序的方式 ?

5、什么是事件轮询(EventLoop) ?

6、数组的一些API, 哪些能够改变原数组, 那些不能 ?

7、for 循环与 forEach 的区别 ?

8、url 的组成 ?

9、Promise 的使用场景 ?

10、let, const, var 的区别 ?


1、解释一下什么是闭包 ?

🍉 闭包:就是能够读取外层函数内部变量的函数。 🍉 闭包需要满足三个条件:              访问所在作用域;              函数嵌套;              在所在作用域外被调用 。 🍉 优点:              可以重复使用变量,并且不会造成变量污染 。 🍉 缺点:              会引起内存泄漏 🍉 使用闭包的注意点:              由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象 (object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性 (private value),这时一定要小心,不要随便改变父函数内部变量的值。

2、解释一下原型和原型链 ?

🍉 原型 原型就是一个为对象实例定义了一些公共属性和公共方法的对象模板。 🍉 原型链              对象之间的继承关系通过构造函数的prototype指向父类对象,直到指向Object对象为止形成的指向链条。              通俗讲: 原型链是原型对象创建过程的历史记录。 🍉 注:在javascript中,所有的对象都拥有一个__proto__属性指向该对象的原型(prototype) 。

3、说一下 ES6 中你熟悉的一些内容 ?

🍉 class 类的继承ES6中不再像ES5一样使用原型链实现继承,而是引入Class这个概念 🍉 async、await使用 async/await, 搭配promise,可以通过编写形似同步的代码来处理异步流程, 提高代码的简洁性和可读性async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成 🍉 Promise是异步编程的一种解决方案,比传统的解决方案(回调函数和事件)更合理、强大 🍉 Symbol是一种基本类型。Symbol 通过调用symbol函数产生,它接收一个可选的名字参数,该函数返回的symbol是唯一的 🍉 Proxy代理使用代理(Proxy)监听对象的操作,然后可以做一些相应事情 🍉 Set是类似于数组的数据集合,无序,插入删除速度快,元素不重复,查找速度快。 🍉 Map是一个类似对象的数据结构,和对象不同的在于它的key可以是任意类型,但是对象只能使用string和symbol类型,Map的存储关联性更强 🍉生成器函数可以进行阻断函数执行的过程,通过传参可以传入新的值进入函数继续执行,可以用于将异步变为阻塞式同步

4、数组排序的方式 ?

🍉 冒泡排序:

🍉 选择排序:

🍉 快速排序:

5、什么是事件轮询(EventLoop) ?

🍉 一个用来等待和发送消息和事件的程序结构。        1、所有任务都在主线程上执行,形成一个执行栈。        2、主线程发现有异步任务,如果是微任务就把他放到微任务的消息队列里,如果是宏任务就把他放到宏任务的消息队列里。        3、执行栈所有同步任务执行完毕。        4、执行微任务队列,之后再执行宏任务队列。        5、轮询第4步。

6、数组的一些API, 哪些能够改变原数组, 那些不能 ?

🍉 改变原数组的方法:

shift() unshift() pop() push() reverse() sort() splice()

🍉 不改变原数组的方法:

concat() every() filter() forEach() indexOf() join() lastIndexOf() map() some() every() slice() reduce() reduceRight() flat() flatMap() find()

7for 循环与 forEach 的区别 ?

1.for循环可以使用break跳出循环,但forEach不能。 2.for循环可以控制循环起点(i初始化的数字决定循环的起点),forEach只能默认从索引0开始。 3.for循环过程中支持修改索引(修改 i),但forEach做不到(底层控制index自增,无法左右它)。

8、url 的组成 ?

http:/https: 协议 www.baidu.com 域名 :8080 端口 /sf/vsearch 路径 ?wd=百度热搜 查询(可有可无) #a=1&b=2 哈希值(可有可无)

9Promise 的使用场景 ?

🍉 场景1:获取文件信息 🍉 场景2:配合AJAX获取信息 🍉 场景3:解决回调地狱,实现串行任务队列 🍉 场景4: node中进行本地操作的异步过程

10let, const, var 的区别 ?

声明方式   变量提升   暂时性死区   重复声明   初始值   作用域 var                允许          不存在          允许       不需要   非块级 let                不允许          存在          不允许     不需要     块级 const           不允许          存在          不允许       需要       块级

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...