还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
js笔试题型及答案JavaScript笔试题型及答案
一、单项选择题(共30题,每题1分)(以下题目覆盖JavaScript核心基础及高频考点,答案附文末)JavaScript中,以下哪个不是ES6新增的基本数据类型?A.String B.Symbol C.BigInt D.Object执行以下代码后,输出结果是?let a=10;function test{a=20;console.loga;test;console.loga;A.2020B.1020C.2010D.报错以下代码的输出结果是?console.log1+2;A.3B.12C.12D.NaN关于JavaScript作用域,以下说法正确的是?A.函数内声明的变量在全局作用域中不可访问B.块级作用域通过let/const声明,ES5中已支持C.变量提升是指变量在声明前即可使用,值为undefinedD.全局作用域中的变量只能通过window对象访问以下哪个方法可以删除数组的一个元素?A.shift B.pop C.slice D.splice执行以下代码后,输出结果是?第1页共12页let arr=[1,2,3];arr.length=5;console.logarr;A.[1,2,3,0,0]B.[1,2,3,empty×2]C.[1,2,3]D.报错JavaScript中,以下哪个不是事件监听方法?A.addEventListener B.attachEventC.onload D.onclick关于this指向,以下说法错误的是?A.普通函数中,this指向全局对象(浏览器中为window)B.对象方法中,this指向调用该方法的对象C.箭头函数没有自己的this,继承自外层作用域的thisD.call/apply/bind无法改变this指向以下代码的输出结果是?let x=10;const y=x;x=20;console.logy;A.10B.20C.报错D.undefined以下哪个不是JavaScript中的循环语句?A.for B.while C.do-while D.foreach执行以下代码后,输出结果是?let num=5;if num10{console.log大于10;第2页共12页}else ifnum3{console.log大于3;}else{console.log小于等于3;A.大于10B.大于3C.小于等于3D.无输出关于JSON,以下说法正确的是?A.JSON是JavaScript的原生对象,可直接使用B.JSON字符串可通过eval解析为对象C.JSON支持函数类型的数据D.JSON中字符串必须使用单引号包裹以下代码的输出结果是?let str=hello world;console.logstr.indexOfo;A.3B.4C.5D.6关于函数参数,以下说法错误的是?A.ES6中支持默认参数,如function fna=1{}B.arguments对象在箭头函数中可用C.剩余参数...可收集多个实参为数组D.参数传递为值传递,基本类型传递副本,引用类型传递引用执行以下代码后,输出结果是?let a={name:test};let b=a;b.name=new test;console.loga.name;A.test B.new testC.undefined D.报错第3页共12页以下哪个方法可以将字符串分割为数组?A.split B.join C.slice D.substring关于Promise,以下说法错误的是?A.Promise有pending、fulfilled、rejected三种状态B.状态一旦改变不可逆,且只能从pending变为fulfilled或rejectedC..then方法返回的是一个新的Promise实例D.Promise只能解决异步操作的回调地狱问题,无法处理同步操作执行以下代码后,输出结果是?let arr=[1,3,5];arr.forEachitem,index={if index===1{arr.spliceindex,1;console.logarr;A.[1,3,5]B.[1,5]C.[1,3]D.报错关于let和var的区别,以下说法正确的是?A.let存在变量提升,var不存在B.let在块级作用域中声明,var在函数作用域中声明C.同一作用域内,let可重复声明同一变量D.let和var都可以在声明前使用以下代码的输出结果是?function*generator{yield1;yield2;return3;第4页共12页let g=generator;console.logg.next.value;A.1B.2C.3D.undefined关于DOM,以下说法错误的是?A.document.getElementById返回唯一元素B.document.getElementsByTagName返回HTMLCollectionC.innerHTML和textContent的区别是后者会解析HTML标签D.appendChild可将元素添加到父节点的末尾执行以下代码后,输出结果是?let a=5;let b=5;console.loga==b;console.loga===b;A.true trueB.true falseC.false trueD.false false以下哪个不是JavaScript中的内置对象?A.Array B.Date C.Math D.StringBuffer关于ES6的class,以下说法正确的是?A.class本质上是构造函数的语法糖B.class中无法定义静态方法C.子类继承父类时,必须在constructor中调用superD.class中定义的方法会被实例继承,也会被原型链共享执行以下代码后,输出结果是?let num=0;for leti=0;i3;i++{setTimeout={第5页共12页num++;},0;console.lognum;A.0B.1C.2D.3关于闭包,以下说法正确的是?A.闭包只能在函数内部定义B.闭包会导致内存泄漏,应避免使用C.闭包可以访问外层函数的变量,并保持其状态D.闭包无法访问全局变量以下代码的输出结果是?let obj={a:1,b:2};let{a,c=3}=obj;console.loga,c;A.13B.1undefined C.12D.报错关于异步编程,以下哪种方式无法实现异步操作?A.setTimeout B.Promise C.for循环D.async/await执行以下代码后,输出结果是?let a=1;let b=new Number1;console.loga===b;console.loga==b;A.true trueB.true falseC.false trueD.false false以下哪个不是JavaScript的基本数据类型?A.Undefined B.Null C.Array D.Boolean
二、多项选择题(共20题,每题2分)第6页共12页(以下题目可能有多个正确选项,答案附文末)以下哪些是JavaScript的基本数据类型?A.Object B.BigInt C.Symbol D.Map关于变量声明,以下说法正确的有?A.var声明的变量存在变量提升B.let声明的变量在块级作用域内有效C.const声明的变量必须初始化且不可重新赋值D.同一作用域内,let和var可以声明同名变量以下哪些数组方法会改变原数组?A.push B.pop C.slice D.sort关于this指向,以下说法正确的有?A.普通函数中,this指向全局对象(浏览器中为window)B.对象方法中,this指向调用该方法的对象C.使用call改变this指向时,参数需按顺序传递D.箭头函数的this在定义时确定,与调用无关以下哪些是ES6引入的特性?A.箭头函数B.类(Class)C.Promise D.解构赋值关于Promise的状态,以下说法正确的有?A.初始状态为pendingB.可从pending变为fulfilledC.可从pending变为rejectedD.状态改变后不可再变以下哪些是DOM操作的方法?A.getElementById B.querySelector C.addEventListenerD.innerHTML第7页共12页关于闭包的作用,以下说法正确的有?A.实现数据私有化B.保存函数内状态C.解决异步操作中的变量访问问题D.直接导致内存泄漏以下哪些是JavaScript中的循环语句?A.for...in B.for...of C.while D.do...while关于原型链,以下说法正确的有?A.对象通过__proto__属性连接到原型B.原型链的顶端是Object.prototypeC.访问对象属性时会沿原型链查找D.原型链可实现继承以下哪些方法可用于处理字符串?A.toUpperCase B.split C.join D.substr关于异步编程,以下说法正确的有?A.回调函数可能导致回调地狱B.Promise是解决回调地狱的方案之一C.async/await是基于Promise的语法糖D.异步操作只能通过异步函数实现以下哪些是JavaScript的内置对象?A.Array B.Date C.RegExp D.String关于let和const的区别,以下说法正确的有?A.let可重新赋值,const不可B.let声明的变量存在变量提升,const不存在C.let和const都在块级作用域内有效第8页共12页D.let和const声明的变量都不能在声明前使用以下哪些会导致JavaScript代码报错?A.未声明的变量B.语法错误(如括号不匹配)C.类型错误(如数字调用字符串方法)D.引用未定义的对象属性关于函数,以下说法正确的有?A.函数声明会被提升到作用域顶部B.函数表达式不会被提升C.箭头函数没有arguments对象D.函数可以作为参数传递以下哪些是JSON的格式要求?A.键名必须用双引号包裹B.支持数组类型C.支持函数类型D.值可以是字符串、数字、布尔、数组、对象、null关于ES6的模块系统,以下说法正确的有?A.使用import导入模块B.使用export导出模块C.模块中this指向undefinedD.模块只能在浏览器环境中使用以下哪些是事件冒泡的特点?A.事件从目标元素向上传播B.会触发所有父元素的相同事件C.可通过stopPropagation阻止D.无法阻止关于JavaScript的垃圾回收机制,以下说法正确的有?第9页共12页A.自动回收不再使用的内存B.主要通过引用计数法C.现代浏览器多使用标记-清除法D.手动调用垃圾回收函数可强制回收
三、判断题(共20题,每题1分)(对的打√,错的打×,答案附文末)JavaScript是一种编译型语言()var声明的变量在全局作用域中是window对象的属性()箭头函数可以使用arguments对象()JSON.stringify可以将JavaScript对象转换为JSON字符串()for...in循环适用于遍历数组的索引()Promise的.then方法可以链式调用()DOM中的事件委托利用了事件冒泡机制()let和const声明的变量存在变量提升()数组的sort方法默认按字母顺序排序数字()函数声明的优先级高于变量声明()JavaScript中,对象的属性只能是字符串类型()async函数返回的一定是Promise对象()原型链中,子对象可以继承父对象的所有属性和方法()闭包会导致内存泄漏,应避免使用()addEventListener方法可以绑定多个事件处理函数()typeof null的结果是object()解构赋值只能用于数组,不能用于对象()setTimeout的回调函数一定会在指定时间后执行()第10页共12页JavaScript中的所有错误都会导致程序中断()ES6的class语法支持继承,通过extends关键字实现()
四、简答题(共2题,每题5分)简述闭包的概念,并说明其主要应用场景(答案不超过150字)解释JavaScript中的原型链,并说明它如何实现继承?(答案不超过150字)附标准答案
一、单项选择题(30题)D
2.A
3.B
4.C
5.BA
7.B
8.D
9.A
10.DB
12.B
13.B
14.B
15.BA
17.D
18.B
19.B
20.AC
22.B
23.D
24.A
25.AC
27.A
28.C
29.C
30.C
二、多项选择题(20题)BC
2.ABC
3.ABD
4.ABD
5.ABDABCD
7.ABCD(注querySelector是选择元素,addEventListener是绑定事件,innerHTML是修改内容,均属于DOM操作)
8.ABC
9.ABCD
10.ABCDABD(注join是数组方法,用于连接数组元素为字符串)
12.ABC
13.ABCD
14.AC
15.ABCDABCD
17.ABD(注JSON不支持函数类型)
18.ABC
19.ABC
20.AC
三、判断题(20题)第11页共12页×(JavaScript是解释型语言)
2.√
3.×(箭头函数无arguments)
4.√
5.√√
7.√
8.×(let/const不存在变量提升,存在暂时性死区)
9.√
10.√×(对象属性也可以是Symbol类型)√
13.√
14.×(闭包合理使用可优化性能,并非必须避免)
15.√
16.√×(解构赋值也可用于对象)
18.×(可能因JS单线程延迟执行)
19.×(try-catch可捕获错误不中断程序)
20.√
四、简答题(2题)闭包是有权访问另一个函数作用域中变量的函数,通常由函数嵌套形成主要应用场景数据私有化,保护函数内变量不被外部修改;维持函数内状态,实现数据缓存;实现模块化和封装原型链是对象通过__proto__属性连接到原型对象,形成的链式查找路径顶端是Object.prototype,依次向上直到null访问对象属性时,JS会沿原型链查找,找到则返回,未找到返回undefined通过原型链,子类可继承父类的属性和方法,实现继承文档说明本文档涵盖JavaScript核心笔试题型(选择、多选、判断、简答),覆盖变量、数据类型、函数、DOM、异步、闭包、原型链等高频考点,答案准确且解析简洁,适合前端开发者或学习者自测复习第12页共12页。
个人认证
优秀文档
获得点赞 0