还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
js笔试题及答案
一、文档说明本文档整理了JavaScript(JS)常见笔试题及答案,涵盖单项选择、多项选择、判断及简答题四大题型,适合前端开发者、学习者巩固JS核心知识点,或作为面试/备考练习资料题目覆盖基础语法、DOM/BOM操作、异步编程、闭包、原型链等核心考点,答案准确实用,可直接参考练习
二、单项选择题(共30题,每题1分,共30分)在JavaScript中,以下哪个不是基本数据类型?()A.String B.Number C.Object D.Boolean执行以下代码后,变量a的值为?let a=10;function fn{a=20;}fn;()A.10B.20C.undefined D.报错以下代码的输出结果是?console.log1+2;()A.3B.12C.12D.NaN关于let和const的说法,正确的是?()A.两者声明的变量都存在变量提升B.let声明的变量可重复赋值C.const声明的变量不可修改D.let和const都属于块级作用域以下哪个方法会修改原数组?()A.slice B.map C.push D.concatJavaScript中,typeof null的返回结果是?()A.null B.object C.number D.undefined以下代码的输出结果是?[1,2,3].includes4()第1页共10页A.true B.false C.1D.undefined关于函数参数默认值,以下语法正确的是?()A.function fna=10,b{}B.function fna,b=20{}C.function fna,b{a=10;b=20;}D.function fna=10,b=a{}以下哪个不是JavaScript的事件类型?()A.click B.load C.submit D.resizeTo执行[1,2,3].finditem=item2的结果是?()A.1B.2C.3D.undefined关于箭头函数,以下说法错误的是?()A.箭头函数没有自己的`this`B.箭头函数不能用作构造函数C.箭头函数必须使用`function`关键字D.箭头函数简化了函数定义JavaScript中,document.getElementByIdbox返回的是?()A.一个数组B.一个DOM元素对象C.null(若元素不存在)D.以上都是以下代码的输出结果是?var x=10;if true{let x=20;console.logx;}console.logx;()A.10,20B.20,10C.20,20D.10,10关于Promise,以下说法正确的是?()A.`Promise`有`pending`、`resolved`、`rejected`三种状态B.`Promise`的`then`方法只能接收成功回调C.`Promise`的`catch`方法无法捕获错误D.`Promise`是同步执行的以下哪个不是ES6新增的特性?()第2页共10页A.`let`/`const`B.箭头函数C.`arguments`对象D.模板字符串执行typeof typeof10的结果是?()A.number B.string C.object D.undefinedJavaScript中,以下哪个方法可删除数组一个元素?()A.`pop`B.`shift`C.`splice0,1`D.`slice-1`关于闭包,以下说法正确的是?()A.闭包会导致内存泄漏,应避免使用B.闭包只能访问外部函数的局部变量C.闭包可保存函数执行时的状态D.闭包无法访问全局变量以下代码的输出结果是?let a==10;console.loga;()A.10B.a C.函数体D.undefinedJavaScript中,JSON.parse123的结果是?()A.123B.123C.{123:undefined}D.报错关于this指向,以下说法错误的是?()A.普通函数中`this`指向调用者B.箭头函数中`this`继承自外层作用域C.构造函数中`this`指向新创建的实例D.`call`/`apply`/`bind`无法改变`this`指向以下代码的输出结果是?[1,2,3].reduceacc,cur=acc+cur,0()A.6B.123C.0D.1JavaScript中,window对象的innerWidth属性表示?()A.文档的宽度B.浏览器视口宽度第3页共10页C.屏幕宽度D.页面内容宽度关于class语法,以下说法正确的是?()A.`class`是ES5中`构造函数`的语法糖B.`class`中必须显式定义`constructor`C.`class`的方法定义在原型链上D.`class`不支持继承执行console.log1020的结果是?()A.10B.20C.true D.falseJavaScript中,以下哪个API用于操作本地存储?()A.`XMLHttpRequest`B.`localStorage`C.`fetch`D.`WebSocket`关于事件冒泡,以下说法正确的是?()A.事件冒泡无法阻止B.`event.stopPropagation`可阻止冒泡C.冒泡只在`window`对象上触发D.冒泡是指事件从子元素向父元素传递以下代码的输出结果是?let b=hello;function fn{b=world;}fn;console.logb;()A.hello B.world C.undefined D.报错JavaScript中,setTimeout的回调函数会在什么时候执行?()A.立即执行B.下一次事件循环C.同步执行D.随机时间关于for...in和for...of的区别,以下说法正确的是?()A.`for...in`遍历数组索引,`for...of`遍历数组元素B.`for...in`适用于遍历对象,`for...of`适用于遍历可迭代对象C.`for...in`遍历顺序一定是数字升序第4页共10页D.`for...of`无法遍历`Object`对象
三、多项选择题(共20题,每题2分,共40分,多选、少选、错选均不得分)以下属于JavaScript数据类型的有?()A.null B.undefined C.Symbol D.Array关于Array.prototype的方法,以下描述正确的有?()A.sort默认按字母顺序排序数组B.reverse会修改原数组C.join可将数组元素拼接为字符串D.filter会返回一个新数组以下哪些情况会导致变量提升?()A.var声明的变量B.let声明的变量C.函数声明D.函数表达式JavaScript中的异步编程方式有?()A.回调函数B.Promise C.async/await D.setTimeout关于this的指向,在以下哪些场景下指向全局对象window?()A.全局作用域中B.普通函数调用C.箭头函数中D.构造函数中以下哪些是ES6的数组扩展方法?()A.Array.from B.Array.of C.flat D.includesJavaScript中,可用于操作DOM的API有?()A.getElementsByClassName B.querySelectorC.addEventListener D.innerHTML关于闭包的应用场景,正确的有?()A.数据私有化B.防抖/节流函数C.柯里化D.继承第5页共10页以下代码会输出2的有?()A.console.logNumber2B.console.logparseInt
2.5C.console.log+2D.console.log2-0JavaScript中,会导致原数组被修改的方法有?()A.`push`B.`splice`C.`sort`D.`map`关于JSON的说法,正确的有?()A.JSON是一种轻量级数据交换格式B.JSON只能表示简单数据类型(字符串、数字、布尔等)C.JSON对象的键必须用双引号括起来D.`JSON.stringify`可将JS对象转为JSON字符串以下哪些是JavaScript的内置对象?()A.`Math`B.`Date`C.`RegExp`D.`Function`关于原型链,以下说法正确的有?()A.对象的`__proto__`属性指向其原型对象B.原型链的尽头是`Object.prototype`C.访问对象属性时会沿着原型链查找D.原型链可实现继承以下哪些是JavaScript的错误类型?()A.`SyntaxError`B.`TypeError`C.`ReferenceError`D.`RangeError`关于let和const与var的区别,正确的有?()A.`let`/`const`不存在变量提升B.`let`/`const`有块级作用域C.`let`/`const`不允许重复声明D.`var`可在声明前使用(变量提升)JavaScript中,以下哪些操作会导致内存泄漏?()第6页共10页A.未清理的定时器B.闭包中引用的大对象C.未移除的事件监听D.全局变量未声明以下哪些是箭头函数的特性?()A.没有`arguments`对象B.`this`指向外层作用域C.不能使用`new`调用D.简化函数语法关于addEventListener的说法,正确的有?()A.可添加多个事件监听器B.可通过`removeEventListener`移除C.事件冒泡阶段触发D.同一元素同一事件只能添加一次JavaScript中的可迭代对象有?()A.数组B.`arguments`对象C.`Map`D.`Set`以下哪些是JavaScript的模块化方案?()A.`CommonJS`B.`ES Module`C.`AMD`D.`UMD`
四、判断题(共20题,每题1分,共20分,正确打“√”,错误打“×”)JavaScript是一种编译型语言()let声明的变量在块级作用域内不可重复赋值()null和undefined在==比较时结果为true()数组的length属性可以通过赋值修改()Promise的then方法返回的新Promise状态由回调函数的返回值决定()async函数返回的一定是Promise对象()JavaScript中,typeof[]的结果是array()for...in循环遍历数组时,索引一定是数字类型()document.write可以在页面加载后动态添加内容()函数表达式var fn=function{}会发生变量提升()第7页共10页const声明的变量不可重新赋值,也不可修改其内部属性(如对象)()JavaScript中的Date对象可以直接通过new Date创建当前时间实例()map方法和forEach方法都会修改原数组()this在箭头函数中是动态绑定的()JSON.parse{}的结果是一个空对象()JavaScript中,addEventListenerclick,fn,true表示在捕获阶段触发fn()let a=1;a=1;是合法的变量赋值()原型链上的属性和方法是所有实例共享的()setTimeout和setInterval的执行时机都是精确的()class语法中,子类通过extends关键字继承父类()
五、简答题(共2题,每题5分,共10分,答案不超过150字)请简述JavaScript中异步编程的几种方式及各自特点答异步编程方式包括
①回调函数(简单但易形成回调地狱,可读性差);
②Promise(链式调用解决回调地狱,有pending/resolved/rejected三种状态,支持错误捕获);
③async/await(基于Promise的语法糖,代码更简洁,同步写法实现异步逻辑)什么是原型链?它在JavaScript中起到什么作用?答原型链是对象通过__proto__属性连接形成的链式结构,用于实现继承当访问对象属性时,JS会沿原型链从当前对象向上查找,直至找到属性或null,实现属性/方法的复用,避免重复定义,是JS实现继承的核心机制第8页共10页
六、参考答案单项选择题C
2.B
3.B
4.B
5.C
6.B
7.B
8.B
9.D
10.CC
12.B
13.B
14.A
15.C
16.B
17.A
18.C
19.A
20.BD
22.A
23.B
24.C
25.B
26.B
27.D
28.B
29.B
30.B多项选择题ABCD
2.ABCD
3.AC
4.ABCD
5.AB
6.ABCD
7.ABCD
8.ABC
9.ABCD
10.ABCABCD
12.ABCD
13.ACD
14.ABCD
15.ABCD
16.ABC
17.ABCD
18.ABC
19.ABCD
20.ABCD判断题×
2.√
3.√
4.√
5.√
6.√×(结果为object)
8.×(可能包含非数字索引,如字符串索引)
9.√
10.√×(不可修改内部属性,如对象的push方法可修改数组)
12.√
13.×(forEach不修改原数组)
14.×(箭头函数中this是静态的,继承外层)√
16.√
17.√
18.√
19.×(执行时机不精确,受事件循环影响)
20.√简答题异步编程方式包括
①回调函数(简单但易形成回调地狱);
②Promise(链式调用解决地狱,支持错误捕获);
③async/await(语法糖,同步写法实现异步,更易读)第9页共10页原型链是对象通过__proto__连接的链式结构,用于继承访问对象属性时沿原型链查找,实现属性/方法复用,是JS继承的核心机制文档说明本文档题目覆盖JS核心考点,答案简洁准确,适合前端学习者自测或备考建议结合题目深入理解知识点,避免死记硬背第10页共10页。
个人认证
优秀文档
获得点赞 0