- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
JS笔试题及答案
一、选择题(每题5分,共25分)
下列关于变量声明的说法,错误的是()
A.var声明的变量存在变量提升,函数声明也存在提升且优先级高于var
B.let声明的变量具有块级作用域,同一作用域内不能重复声明
C.const声明的变量一旦赋值就不能修改,所以const声明的变量必须立即赋值
D.使用let/const声明的变量,在声明前访问会抛出ReferenceError,而var声明的变量会返回undefined
答案:C
解析:const声明的是“常量引用”,不是“值不可变”。如果const声明的是对象/数组,对象的属性、数组的元素是可以修改的,比如constobj={a:1};obj.a=2是合法的。只有当const声明的是基本类型(数字、字符串等)时,值才不能修改,且const声明必须立即赋值,这一点是对的,但选项C的表述“一旦赋值就不能修改”忽略了引用类型的情况,所以错误。
下列代码执行后,控制台输出结果是()
functionfn(){
vara=1;
functioninner(){
console.log(a);
vara=2;
}
inner();
}
fn();
A.1B.2C.undefinedD.抛出错误
答案:C
解析:var存在变量提升,inner函数内的vara=2会提升到inner函数顶部,相当于:
functioninner(){
vara;//提升,此时a为undefined
console.log(a);//输出undefined
a=2;
}
虽然外部fn函数有a=1,但inner函数内声明了同名变量,会覆盖外部变量,所以输出undefined。
关于JS原型,下列说法正确的是()
A.每个对象都有prototype属性,指向它的原型对象
B.构造函数的prototype属性,就是其实例的原型对象
C.通过Object.create(null)创建的对象,有原型对象
D.原型链的终点是Object.prototype,它的原型是null
答案:B
解析:A错误,只有函数(构造函数)有prototype属性,普通对象只有__proto__(隐式原型)指向原型对象;C错误,Object.create(null)创建的是“无原型对象”,它没有__proto__,也没有原型链;D错误,原型链终点是null,Object.prototype的原型是null,表述顺序反了;B正确,比如functionPerson(){};constp=newPerson(),p的原型就是Person.prototype。
下列异步代码执行后,控制台输出顺序是()
console.log(1);
setTimeout(()={
console.log(2);
},0);
Promise.resolve().then(()={
console.log(3);
});
console.log(4);
A.1432B.1423C.1342D.1234
答案:A
解析:JS是单线程,遵循“先同步,后异步”,异步又分“微任务(Promise.then/catch/finally、async/await等)”和“宏任务(setTimeout、setInterval、DOM事件等)”,执行顺序:
先执行同步代码:console.log(1)→console.log(4),输出1、4;
同步代码执行完,清空微任务队列:Promise.resolve().then()是微任务,输出3;
微任务清空后,执行宏任务队列:setTimeout是宏任务,输出2;
最终顺序1432。
下列关于事件委托的说法,错误的是()
A.事件委托利用事件冒泡机制,将子元素的事件绑定到父元素上
B.事件委托可以减少事件绑定的数量,优化性能
C.事件委托中,通过event.target可以获取到触发事件的子元素
D.事件委托只能用于点击事件(click),不能用于其他事件(如input、mouseover)
答案:D
解析:事件委托适用于所有支持冒泡的事件,比如input(输入事件)、mouseover(鼠标悬浮事件)、keydown(键盘按下事件)等,只要事件能冒泡到父元素,就能用事件委托,所以D错误。
二、编程题(每题1
您可能关注的文档
最近下载
- 梅特勒-托利多 IND131_331 使用者手册 .pdf VIP
- 伤口专科护士门诊计划书.pptx
- 工程项目管理课程设计_16.doc VIP
- 《化妆品注册备案管理办法》解读课件.pptx VIP
- 中等职业学校学生学业水平考试建筑工程类技能考试考点建设标准(试行)修订稿.docx VIP
- 2022年河北省职业院校(中职组)“平面设计技能大赛”实操样题 .docx VIP
- Unit 2 My school things Start up(教学课件)-三年级英语上学期(外研版2024秋).pptx
- 特种设备安全管理机构职责.pdf VIP
- 奥迪Q7用户使用手册.pdf
- 中医药“一法一条例”考试试题及答案.docx VIP
文档评论(0)