- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)