- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
JavaScript基础能力测试题及答案
一、选择题(每题5分,共30分)
以下代码执行后,控制台输出结果是()
leta=10;
functionfn(){
console.log(a);
leta=20;
}
fn();
A.10B.20C.undefinedD.报错
关于JavaScript中的this指向,下列说法错误的是()
A.普通函数调用时,this指向全局对象(浏览器中为window)
B.箭头函数没有自己的this,其this继承自外层作用域
C.对象方法调用时,this指向调用该方法的对象
D.使用call()方法可以永久改变函数的this指向
以下代码执行后,arr的结果是()
letarr=[1,2,3,4];
arr.forEach(item={
if(item===2){
return;
}
item*=2;
});
A.[2,2,6,8]B.[1,2,3,4]C.[2,4,6,8]D.[1,4,3,8]
下列关于闭包的描述,正确的是()
A.闭包会导致内存泄漏,应避免使用
B.闭包可以访问外层函数的变量,且外层函数执行后变量仍可被访问
C.闭包只能在箭头函数中实现
D.闭包的作用域链不会影响代码执行效率
以下异步代码执行顺序,正确的是()
console.log(1);
setTimeout(()={
console.log(2);
},0);
Promise.resolve().then(()={
console.log(3);
});
console.log(4);
A.1→4→3→2B.1→3→4→2C.1→4→2→3D.1→2→3→4
关于数组方法,下列说法正确的是()
A.map()方法不会改变原数组,返回新数组
B.filter()方法会改变原数组,返回过滤后的元素
C.push()方法返回新数组的长度,不改变原数组
D.slice()方法会改变原数组,返回截取的子数组
二、判断题(每题3分,共15分)
JavaScript是一种强类型语言,变量声明时必须指定数据类型。()
let和const声明的变量存在块级作用域,var声明的变量不存在。()
Promise有三种状态:pending(等待)、fulfilled(成功)、rejected(失败),状态一旦改变就无法再修改。()
原型链的终点是Object.prototype,Object.prototype的proto是null。()
事件委托的原理是利用事件冒泡,将子元素的事件绑定到父元素上,从而减少事件绑定次数。()
三、编程题(共55分)
编写函数,实现数组去重功能,要求兼容基本数据类型(数字、字符串、布尔值),返回去重后的新数组。(15分)
示例:输入[1,2,2,1,true,true,3],输出[1,2,1,true,3]
编写一个倒计时函数,接收一个秒数参数,每秒在控制台输出剩余时间,倒计时结束后输出“倒计时结束!”。(20分)
要求:
倒计时过程中可以通过调用返回的取消函数终止倒计时
避免倒计时结束后仍继续执行
实现一个简单的学生信息管理系统,包含以下功能:(20分)
添加学生信息(姓名、年龄、学号,学号唯一)
查询所有学生信息
根据学号删除学生信息
根据学号修改学生年龄
要求:使用对象或类的方式实现,确保数据的完整性和唯一性
答案及解析
一、选择题
答案:C
解析:let声明的变量存在暂时性死区,函数内部声明leta后,在赋值前访问a会触发undefined,而非外层的10。
答案:D
解析:call()、apply()、bind()均能改变this指向,其中call和apply是临时改变一次函数执行时的this,bind是返回一个永久改变this指向的新函数,并非“永久改变原函数”。
答案:B
解析:forEach中的return仅跳出当前循环,且item是数组元素的副本(基本数据类型),修改item不会改变原数组元素,因此原数组保持不变。
答案:B
解析:闭包是函数及其外层作用域的组合,外层函数执行后,其变量仍可通过闭包访问;合理使用闭包不会导致内存泄漏,普通函数也可实现闭包,闭包的作用域链会轻微影响执行效率,但并非主要问题。
答案:A
解析:同步代码优先执行(1、4),随后执行微任务(Pro
原创力文档


文档评论(0)