JavaScript基础与应用试题及答案.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

JavaScript基础与应用试题及答案

一、填空题(每题5分,共10分)

以下代码执行后,控制台输出结果依次是、、______

console.log(a);

vara=10;

letb=20;

console.log(a);

console.log(b);

console.log(c);

constc=30;

以下代码执行后,counter()调用两次的结果分别是、

functioncreateCounter(){

letcount=0;

returnfunctioncounter(){

count++;

returncount;

};

}

constcounter=createCounter();

二、判断题(每题5分,共15分,对的打√,错的打×并说明原因)

以下代码中,this指向window(非严格模式下)

constobj={

name:张三,

sayName:function(){

setTimeout(function(){

console.log(this.name);

},1000);

}

};

obj.sayName();

null==undefined的结果是true,null===undefined的结果是false

数组的forEach方法可以通过return语句终止循环

三、选择题(每题5分,共15分)

以下代码执行后,控制台输出结果是()

functionPerson(name){

this.name=name;

}

Person.prototype.sayHi=function(){

console.log(`Hi,${this.name}`);

};

constp1=newPerson(李四);

constp2=Person(王五);

console.log(p1.name);

console.log(p2.name);

p1.sayHi();

p2.sayHi();

A.李四、王五、Hi,李四、Hi,王五

B.李四、undefined、Hi,李四、报错

C.李四、王五、Hi,李四、报错

D.报错、王五、报错、Hi,王五

以下哪种方式不能实现数组arr=[1,2,3]的深拷贝()

A.constnewArr=JSON.parse(JSON.stringify(arr))

B.constnewArr=[...arr]

C.constnewArr=arr.slice()

D.constnewArr=arr.map(item=item)

以下代码执行后,控制台输出结果是()

functionfn(a,b=a+1){

console.log(a,b);

}

fn(2);

fn(2,4);

A.23、24

B.2undefined、24

C.23、23

D.报错、24

四、编程题(每题20分,共60分)

实现一个函数uniqueArr,对数组进行去重,要求:

支持基本数据类型(Number、String、Boolean、Null、Undefined)去重

支持对象类型根据指定属性去重(如[{id:1},{id:2},{id:1}]根据id去重后为[{id:1},{id:2}])

函数参数:(arr,key?),key为可选参数,仅对象去重时需要

实现一个防抖函数debounce,要求:

功能:高频触发事件时,只在最后一次触发后等待指定时间执行回调

支持立即执行(第一次触发时直接执行,后续触发防抖)

支持取消防抖(如组件卸载前取消未执行的回调)

函数参数:(callback,delay,immediate?),immediate默认为false

实现一个深拷贝函数deepClone,要求:

支持基本数据类型、对象、数组的深拷贝

处理循环引用(如consta={};a.b=a;deepClone(a)不报错)

答案与解析

一、填空题

undefined、10、20、报错

解析:var存在变量提升,声明会提升到当前作用域顶部,赋值留在原地,故第一次console.log(a)输出undefined;let/const存在暂时性死区,未声明前访问会报错,因此最后console.log(c)报错。

1、2

解析:createCounter是闭包函数,内部count被返回的counter

文档评论(0)

151****9429 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档