JavaScript 前端真实面试笔试题(基础+进阶)_第1页
JavaScript 前端真实面试笔试题(基础+进阶)_第2页
JavaScript 前端真实面试笔试题(基础+进阶)_第3页
JavaScript 前端真实面试笔试题(基础+进阶)_第4页
JavaScript 前端真实面试笔试题(基础+进阶)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaScript前端真实面试笔试题(基础+进阶)适用场景:前端初级/中级面试、校招笔试、日常技能考核考试时长:60分钟满分:100分一、单项选择题(每题3分,共10题,30分)1.以下关于var、let、const的说法,正确的是?()A.var存在块级作用域B.let可以变量提升,且存在暂时性死区C.const声明的变量不可修改任何内容D.let/const存在函数作用域2.执行以下代码,控制台输出结果为?()PlainText

console.log(a);

vara=10;

letb=20;A.10、报错B.undefined、报错C.undefined、undefinedD.全部报错3.以下哪种方法不会改变原数组?()A.spliceB.reverseC.mapD.push4.关于JavaScript数据类型,下列说法错误的是?()A.Null属于基本数据类型B.typeofnull的结果是objectC.引用类型数据存储在栈内存中D.Undefined表示变量已声明未赋值5.执行console.log(1+'2'+3)的输出结果是?()A.6B.123C.15D.报错6.以下关于闭包的描述,错误的是?()A.闭包可以让函数内部变量长期驻留内存B.闭包可能造成内存泄漏C.只有嵌套函数才能产生闭包D.闭包可以读取函数外部变量7.Promise不包含以下哪种状态?()A.pendingB.loadingC.fulfilledD.rejected8.关于箭头函数,说法正确的是?()A.箭头函数可以绑定自己的thisB.箭头函数可以作为构造函数C.箭头函数没有arguments对象D.箭头函数可以使用yield关键字9.以下事件循环执行顺序正确的是?()A.微任务>同步代码>宏任务B.同步代码>微任务>宏任务C.同步代码>宏任务>微任务D.宏任务>微任务>同步代码10.以下哪个属性可以阻止事件冒泡?()A.event.preventDefault()B.event.stopPropagation()C.event.stopImmediatePropagation()D.event.cancelBubble=false二、填空题(每题2分,共10题,20分)1.JavaScript中基本数据类型有String、Number、Boolean、Undefined、Null、_______、_______。2.原型链的终点是_______。3.==会进行隐式类型转换,===会同时判断_______和_______。4.遍历对象自身可枚举属性的方法是_______。5.异步宏任务常见有setTimeout、_______、_______。6.改变函数this指向的三个方法是call、_______、_______。7.数组去重最简单的ES6方法是使用_______。8.函数声明和函数表达式最核心的区别是_______。9.[]==![]的结果是_______。10.ES6中模块化导出的关键字是_______,导入关键字是_______。三、简答题(每题5分,共4题,20分)1.简述var、let、const的区别,从作用域、变量提升、重复声明、赋值修改四个维度说明。2.什么是闭包?闭包的用途和缺点分别是什么?3.说一说Promise的使用场景,以及Promise.all和Promise.race的区别。4.简述JavaScript事件循环机制(浏览器端)。四、代码输出题(每题5分,共4题,20分)写出以下代码的最终打印结果,并简单说明原因。1.PlainText

for(vari=0;i<3;i++){

setTimeout(()=>{

console.log(i)

},0)

}2.PlainText

console.log(1);

setTimeout(()=>console.log(2),0);

Promise.resolve().then(()=>console.log(3));

console.log(4);3.PlainText

functionfn(){

vara=1;

returnfunction(){

a++;

console.log(a)

}

}

varf=fn();

f();

f();4.PlainText

varobj={

name:'张三',

say:function(){

console.log()

}

}

varsayFn=obj.say;

obj.say();

sayFn();五、编程实操题(1题,10分)现有一个不规则数组,要求手写函数实现数组扁平化,同时对结果数组去重并从小到大排序。示例:PlainText

constarr=[1,[2,3,2],[4,5,[5,6]],3,1];

//处理后结果:[1,2,3,4,5,6]要求:不使用flat内置方法,手写递归实现扁平化。参考答案(简略)一、单选题1.B2.B3.C4.C5.B6.D7.B8.C9.B10.B二、填空题1.Symbol、BigInt2.null3.值、数据类型4.Object.keys()5.setInterval、AJAX(浏览器事件均可)6.apply、bind7.Set8.函数声明存在变量提升,函数表达式不提升9.true10.export、import三、简答题(核心要点)1.var:函数作用域、可提升、可重复声明、可修改;let/const:块级作用域、暂时性死区、不可重复声明;let可修改值,const不可修改引用地址。2.闭包:内层函数访问外层函数变量形成的作用域;用途:保存私有变量、延续作用域;缺点:容易内存泄漏、占用内存。3.Promise用于处理异步回调地狱;all:所有请求成功才返回,一个失败即失败;race:谁先完成返回谁,无论成功失败。4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论