javascript基础练习题及答案(六)
⼀、单选题(共30题,每题2分)
1.不属于同源策略限制条件的
A 端⼝
B 协议
C 域名
D ⽹址
正确答案: D
2.不属于常见23种设计模式
A 单例
B MVC
C 观察者
D 策略
正确答案: B
3.有代码 function Foo(){}; var foo = new Foo(); 下列表达式运算结果为true的选项为
A Foo.prototype == Foo.proto
B foo.prototype == Foo.proto
C foo.proto == Foo.prototype
D foo.proto == Foo.proto
正确答案: C
解析:
foo.proto == Foo.prototype
实例的 proto__属性指向的是 构造函数的prototype
4.可以通过以下哪个运算符或⽅法判断⼀个实例属于某个类
A typeof
B instanceof
C isPrototypeOf
D hasOwnProperty
正确答案: B
解析:
instanceof可以判断⼀个实例属于某个类
5.以下哪个关键字可以实现类的继承
A inherit
B extends
C public
D interface
正确答案: B
解析: extends es6中的继承
6.关于原型对象以下说法错误的是
A 每⼀个函数都有⼀个原型对象
B 每⼀个构造函数都有⼀个原型对象
C 原型对象上的属性和⽅法能被实例访问
D 原型对象上的属性和⽅法能被⼦类(代码⾥)访问
正确答案: D
解析:
原型对象上的属性和⽅法能被实例访问
7.有代码 function foo(){ var a=10; return function(){ console.log(a++) } } foo()(); 运⾏之后,会在控制台中打印
A 10
B 11
C 函数体小米汽车外观曝光
D 报错
正确答案: A
a++,加加在后,先赋值后加
8.版本管理⼯具svn中的提交命令是
A push
B add
C commit
D update
正确答案: C
解析:
svn中的提交命令是commit
9.有代码 function Foo(){ this.name=“test1”; function bar(){ this.name=“test2” }; bar(); } Foo.name = “test3”; var foo = new Foo(); 问foo.name的值为
A test1
B test2
C test3
D undefined
正确答案: A
解析:
var foo = new Foo()
foo是是Foo的实例,所有foo.name 打印结果就是test1
10.下列jquery对象⽅法中返回布尔值的是
A not()
B has()
C hasClass()
D fiter()
正确答案: C
解析:
hasClass()有类名返回true,没有返回false
11.下列哪⼀项不是jquery进⾏⽂档操作的⽅法
A append()
B inner()
C wrap()
D clone()
正确答案: B
解析:
inner() 不是
12.关于jquery插件,描述错误的是
A 使⽤jquery插件可以提⾼开发效率
B jquery插件可以通过jquery对象调⽤glc coupe
C jquery插件⽆法实现链式调⽤
D jquery插件⼀般都需要考虑参数设置问题
正确答案: C
解析:
英菲尼迪fx35改装只要返回值是jq中的对象,就可以链式调⽤
13.函数的length属性是
ec300
A 函数的⾏数
B 函数的参数个数
C 函数的返回个数
D 永远是0
正确答案: B
解析:
函数的length是参数的个数
14.函数使⽤return不能返回以下哪⼀个
A 函数
B 对象
函数只能返回数据不能返回循环
15.下⾯说法错误的是
A 闭包是指有权访问另⼀个函数作⽤域中的变量的函数
B 闭包的最常见的⽅式就是在⼀个函数内创建另⼀个函数
C 闭包可以被垃圾回收机制所清理
D 函数内部可以引⽤外部的参数和变量
正确答案: C
解析:
闭包不可以被垃圾回收机制所清理
16.下列代码输出的结果是 var a; var a = [1,2,3]; function a(a){ a[1] = 5; } a(a); console.log(a);
A [1,2,3]
B [1,5,3]
C 报错
D undefined
正确答案: C
17.下列箭头函数书写正确的是
A 0–{}
B a,b => {}
C _ =>
D caller
正确答案: C
18.关于this的⼏种表述错误的是
A this所在函数是事件处理函数,this是事件源
B this所在函数没有明确额的⾪属对象,那么this是window对象
C Let a = 123; 那么this.a中的this表⽰window对象6年免检
D this所在函数是构造函数时,this是new出来的对象
正确答案: C
19.在构造函数中,可以在⼀个属性后添加⽅法,该属性为
A prototype
B prototype
C proto
D prototype
正确答案: B
20.在ES6(2015)中,哪个是原先没有的名词
A 函数
B 类
C 递归
D 过程
正确答案: B
21.jQuery中可以使⽤哪个可以实现事件委托的绑定
A add
B on
C bind
D click
正确答案: B
22.以下哪个⽅法不能发起异步请求
A $.get()
B $.post()
C $.json()
.
ajax()正确答案:C解析:A、B、D均是jquery类本⾝的异步请求⽅法C选择项中的
D .json()为⼲扰项,⽆此⽤法
23.下列哪个⽅法不能改变函数内部this的指向
正确答案: B
解析:
bind call apply均可改变this指向,注意使⽤的区别
24.原型链
A 每个继承⽗函数的⼦函数的对象都包含⼀个内部属性_prototype。该属性包含⼀个指针,指向⽗函数的prototype。若⽗函数的原型对象的_proto_属性为再上⼀层函数。在此过程中就形成了原型链
B 每个继承⽗函数的⼦函数的对象都包含⼀个内部属性_proto。该属性包含⼀个指针,指向⽗函数的prototype。若⽗函数的原型对象的prototype_属性为再上⼀层函数。在此过程中就形成了原型链
C 每个继承⽗函数的⼦函数的对象都包含⼀个内部属性_proto_。该属性包含⼀个指针,指向⽗函数的
_proto_。若⽗函数的原型对象的
_proto_属性为再上⼀层函数。在此过程中就形成了原型链
D 每个继承⽗函数的⼦函数的对象都包含⼀个内部属性_proto_。该属性包含⼀个指针,指向⽗函数的prototype。若⽗函数的原型对象的_proto_属性为再上⼀层函数。在此过程中就形成了原型链
正确答案: D
解析:
原理题,原型链是靠__proto__维护的,顶端指向Object.prototype
25.es6继承的语法
A class
B class extends
C class.prototype
D class extend
正确答案: B
解析:
语法题 例如 class A extends B{}
26.在⽤浏览器查看⽹页时出现404错误可能的原因是 ( ) 代表⽹页不存在没有到⽂件
A 页⾯源代码错误
B ⽂件不存在
C 与数据库连接错误
D 权限不⾜
正确答案: B
27.XMLHttpRequest 对象的 status 属性表⽰当前请求的 http 状态码,其中()表⽰正确返回。
A 200
B 301
C 500
D 404
正确答案: A
解析:
500服务器错误,301重定向,404请求资源未到
28.
function People(name, age) { this.name = “xixi”, this.age = 18 return {} } var obj = new People(); People 函数被new调⽤之后的返回值(obj)是?
A {}
B {name: “xixi” age: 18}
C 报错
D 函数体本⾝
正确答案: A
解析:
return 对象⽐实例返回优先级更⾼
29.执⾏下列程序的结果是 function fn3() { arguments.callee.play(); } fn3.play=function () { console.log(“aaa”); }; fn3()
A 报错
B 空值
C play
callee的使⽤
30.
以下运⾏的结果是false的是 function Box(){this.name=‘zhang’;} function Desk(){this.age=100;} function Table()
{this.lever=1000} Desk.prototype=new Box();//通过原型链继承 var desk=new Desk(); var table=new Table();
A alert(table instanceof Object)
B alert(desk instanceof Box);
C alert(Desk instanceof Box);
D alert(desk instanceof Desk );
正确答案: C
解析:
A. ⼀切事物皆对象
B. Dest 继承了 Box, 所以正确
C. Desk 是 Function的实例,和Box⽆关
D. desk 是 Desk 的实例
⼆、多选题(不定项选择)(共20题,每题2分)
1.js创建对象的⽅式有下⾯哪⼏种
A 可以通过json⽅式创建对象
B 可以通过new 关键字创建对象
C 可以通过函数调⽤⽅式创建对象
D 对象不可以通过函数的调⽤⽅式创建
正确答案: A,B,C
2.下⾯关于构造函数的优点,描述正确的有哪些
A 构造函数可以通过new关键字创建对象,对象的创建⽐较规范
B 构造函数只能创建⼀个对象
C 可以解决多个同类对象创建时,代码重复的问题
D 构造函数创建的对象,创建出的对象是相等关系
正确答案: A,C
3.关于apply和call继承描述正确的是
A call⽅法的第⼆个参数不固定
B call⽅法的第⼆个参数只能有⼀个
C apply⽅法的第⼆个参数是⼀个数组
D apply⽅法的第⼆个参数不固定
正确答案: A,C
4.使⽤new运算符⽣成⼀个实例时,需要执⾏的步骤有那些
A 创建⼀个新对象
B 改变this指向
C 执⾏构造函数⾥的代码
D 返回⼀个对象
曾家麟正确答案: A,B,C,D
解析:
当代码 new Foo(…) 执⾏时,会发⽣以下事情:
⼀个继承⾃ Foo.prototype 的新对象被创建。
使⽤指定的参数调⽤构造函数 Foo ,并将 this 绑定到新创建的对象。new Foo 等同于 new Foo(),也就是没有指定参数列表,Foo 不带任何参数调⽤的情况。
由构造函数返回的对象就是 new 表达式的结果。如果构造函数没有显式返回⼀个对象,则使⽤步骤1创建的对象。(⼀般情况下,构造函数不返回值,但是⽤户可以选择主动返回对象,来覆盖正常的对
象创建步骤)
5.jquery中移除jquery对象的⽅法有
A remove
B detach
C empty
D clear
正确答案: A,B,C