js试题及答案(五)

【js试题及答案(五)】一、单选题(共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对象调用
C jquery插件无法实现链式调用
D jquery插件一般都需要考虑参数设置问题
正确答案: C
解析:
只要返回值是jq中的对象,就可以链式调用
13.函数的length属性是
A 函数的行数
B 函数的参数个数
C 函数的返回个数
D 永远是0
正确答案: B
解析:
函数的length是参数的个数
14.函数使用return不能返回以下哪一个
A 函数
B 对象
C 数值
D for循环
正确答案: D
解析:
函数只能返回数据不能返回循环
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对象
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()
D .ajax()正确答案:C解析:A、B、D均是jquery类本身的异步请求方法C选择项中的.ajax()正确答案:C解析:A、B、D均是jquery类本身的异步请求方法C选择项中的.json()为干扰项,无此用法
23.下列哪个方法不能改变函数内部this的指向
A bind
B change
C apply
D call
正确答案: 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
D “aaa”
正确答案: D
解析:
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
解析:
前三个都可以,clear不行
6.以下关于jquery的说法正确的是
A jquery可以和原生js结合一起使用
B jquery对象和原生DOM对象不能相互转换
C jquery对象可以使用原生js的方法
D 原生DOM对象不能使用jquery对象方法
正确答案: A,D
解析:
jquery对象不可以使用原生js的方法
7.对象设置属性和属性值的方法正确的是
A obj.name=3
B obj[“name”]=3
C obj{name} = 3
D Obj->name=3;
正确答案: A,B
8.jquery中获取对象的方式正确的是
A $()
B jQuery()
C jquery()
D $jQuery()
正确答案: A,B
9.案例代码如下:
大字体
小字体
请选取文本是"大字体"的div对象
A $(“div.big”);
B $(“div .big”)
C $(“div:contains(‘大字体’)”);
D $(“form > div.big”);
正确答案: A,C,D
解析:
此题考察不同选择器的用法
B选项是选取div里具有big类名(后代)的jquery对象集合
10.关于prototype原型和原型链说法正确的是
A Javascript的继承机制基于原型,而不是Class类
B 凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象
C 普通对象没有prototype,但有__proto__属性
D prototype属性(对象)会默认获得一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在函数的指针
正确答案: A,B,C,D
11.为什么要使用jQuery?jquery有哪些好处
A 它有强大的选择器,出色的DOM操作的封装
B 出色的浏览器的兼容性
C 完善的ajax
D 有可靠的事件处理机制
正确答案: A,B,C,D
解析:
jquery最大的特点在查询,并封装了大量的方法进行DOM操作,事件处理及ajax请求等
12.下面是设计模式的是
A 单例模式
B 观察者模式
C 测试模式
D 视图模式
正确答案: A,B
解析:
单例模式和观察者模式,是常见的设计模式
13.jq选择器有哪些
A 类
B id
C 标签
D 以上都可以
正确答案: A,B,C,D
解析:
css中的选择器都可以在jq中使用
14.当XMLHttpRequest 对象的状态发生改变时调用 callBackMethod 函数, 下列不正确的是()
A xmlHttpRequest.callBackMethod=onreadystatechange;
B xmlHttpRequest. onreadystatechange(callBackMethod);
C xmlHttpRequest. onreadystatechange(new function(){callBackMethod });
D xmlHttpRequest. onreadystatechange= callBackMethod
正确答案: A,B,C
解析:
状态发生改变,触发onreadystatechange事件, 在改属性上绑定callBackMethod事件处理程序即可
15.下面哪些是mysql的常用数据类型( )
A varchar
B int
C float
D text
正确答案: A,B,C,D
16.jquery绑定事件的方法有
A one
B bind
C addEvent
D on
正确答案: A,B,D
解析:
addEvent不是一个事件
17.Jq中关于dom 增删改的操作有
A append
B appendTo
C remove
D detach
正确答案: A,B,C,D
解析:
几个都是dom操作的方法
18.jq中关于操作元素节点class属性的操作有
A addClass
B removeClass
C attr(“class”, “box”)
D setClass
正确答案: A,B,C
解析:
A是添加类名
B是删除类名
C是切换类名
19.下面可以实现继承的有
A 构造函数继承
B Object.create()
C 原型链继承
D es6 extends
正确答案: A,B,C,D
解析:
前三种是es5中继承,最后一个是es6的继承
20.执行这个程序后打印的结果forEach=function (arr,fn) { for(var i=0,l=arr.length; i A 0 10
B 3 7
C 2 4
D 5 5
正确答案: A,B,D

    推荐阅读