js试题及答案(2)
一、单选题(共30题,每题2分)
1.闭包的好处说法不对的
A 缓存变量
B 防止命名冲突
C 可能造成内存泄露
D 减少内存使用率
解析:
无
2.不能进行强制类型转化的为
A parseInt
B parseFloat
C Number
D Math.floor
正确答案: D
3.alert(username);var username=“leson”;结果为
A undefined
B leson
C null
D 报错
正确答案: A
解析:
变量提升,预解析
4.不属于常见23种设计模式
A 单例
B MVC
C 观察者
D 策略
正确答案: B
5.以下哪一个不是常见的设计模式
A 单例模式
B 代理模式
C 飞行模式
D 观察者模式
正确答案: C
解析:
飞行模式,手机里才有的模式!!
6.有代码 var name = ‘global’; var obj = { name : ‘obj’, dose : function(){ this.name = ‘dose’; return function(){ return this.name; } } } console.log(obj.dose().call(this)); 问在控制台打印的结果为
A global
B obj
C dose
D undefined
正确答案: A
解析:
obj.dose().call(this)
obj.dose()返回的是函数function(){ return this.name; }
call(this)是调用了函数function(){ return this.name; } 并且使用window改变了函数中的this,所有this.name就是window.name
7.下列哪一项不是jquery进行文档操作的方法
A append()
B inner()
C wrap()
D clone()
正确答案: B
解析:
inner() 不是
8.关于jquery插件,描述错误的是
A 使用jquery插件可以提高开发效率
B jquery插件可以通过jquery对象调用
C jquery插件无法实现链式调用
D jquery插件一般都需要考虑参数设置问题
正确答案: C
解析:
只要返回值是jq中的对象,就可以链式调用
9.以下不是闭包特点的是
A 函数嵌套函数
B 函数内部可以引用外部的参数和变量
C 参数和变量不会被垃圾回收机制回收
D 返回的函数可以不用存储在外部变量中
正确答案: D
解析:
返回的函数必须存储在外部变量中
10.以下函数执行的结果是 function fun1(x) { if(x>2){ return (fun1(x-1)+fun1(x-2)); }else{ return 1; } } console.log(fun1(10));
A 50
B 52
C 55
D 60
正确答案: C
解析:
这是一个回调函数的使用
11.以下程序最后计算的结果是 function fun1(){ var sum=1; return function(){ sum++; return sum; } } var fun2=fun1(); console.log(fun2()); console.log(fun2());
A 1,1
B 1,2
C 2,3
D 2,2
正确答案: C
解析:
这是闭包的使用
12.函数使用return不能返回以下哪一个
A 函数
B 对象
C 数值
D for循环
正确答案: D
解析:
函数只能返回数据不能返回循环
13.下列代码输出的结果是 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
解析:
14.var obj = {1 : 1};
var arr = [1,1];
console.log(obj + arr);
A 1
B 2
C [object Object]1,1
D 1,1[object Object]
正确答案: C
解析:
无
15.下列箭头函数书写正确的是
A 0–{}
B a,b => {}
C _ =>
D caller
正确答案: C
解析:
16.在构造函数中,可以在一个属性后添加方法,该属性为
A prototype
B prototype
C proto
D prototype
1
2
3
4
正确答案: B
解析:
17.关于设计模式,下面哪个是错误的
A 工厂方法模式
B 路由器模式
C 策略模式
D 观察者模式
正确答案: B
解析:
无
18.下面哪种不是jquery的选择器
A 基本选择器
B 后代选择器
C 类选择器
D 进一步选择器
正确答案: D
解析:
无
19.以下哪个方法不能发起异步请求
A $.get()
B $.post()
C $.json()
D $.ajax()
正确答案: C
解析:
A、B、D均是jquery类本身的异步请求方法
C选择项中的$.json()为干扰项,无此用法
20.关于jQuery框架,下列描述错误的是
A jQuery框架支持链式写法
B jQuery框架实现了跨浏览器的兼容包括IE低版本
C jQuery1.x版本支持低版本IE浏览器
D jQuery不能操作CSS3属性
正确答案: D
解析:
jQuery可以操作css3属性
21.下列哪个方法不能改变函数内部this的指向
A bind
B change
C apply
D call
正确答案: B
解析:
bind call apply均可改变this指向,注意使用的区别
22.jQuery中的delay方法的作用是
A 停止动画执行
B 暂停动画执行
C 延迟动画执行
D 开始动画执行
正确答案: C
解析:
识记题
23.关于call和apply的说法,错误的是
A call的第一个参数和apply的第一个参数一样
B call的第二个参数到最后一个参数是函数本身的参数
C 关于第二个参数,call可以写arguments,而apply则不可以
D call和apply的功能是一样的,唯一的区别是格式上的区别
正确答案: C
解析:
call的参数为参数列表,apply的参数为数组,可以用arguments表示
24.什么是闭包
A 闭包是指有权访问另一个函数作用域中的变量的函数
B 闭包是指有权访问任意函数作用域中的变量的函数
C 闭包是指有权访问全局个函数作用域中的变量的函数
D 闭包是指有权访问局部个函数作用域中的变量的函数
正确答案: A
解析:
概念题
25.原型的概念
A 每声明一个function,都有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加
B 每声明一个对象,都有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加
C 每声明一个function,都有__proto___原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加
D 每声明一个function,都没有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加
正确答案: A
解析:
原理题,每一个函数都有一个原型对象prototype
26.$(document).ready()和window.onload 有什么区别
A window.onload方法是在网页中所有的元素完全加载到浏览器后才执行,$(document).ready() 可以在DOM载入就绪是就对其进行操纵
B 没有区别
C ( d o c u m e n t ) . r e a d y ( ) 方 法 是 在 网 页 中 所 有 的 元 素 完 全 加 载 到 浏 览 器 后 才 执 行 , (document).ready()方法是在网页中所有的元素完全加载到浏览器后才执行, (document).ready()方法是在网页中所有的元素完全加载到浏览器后才执行,(document).ready() 可以在DOM载入就绪是就对其进行操纵
D 两者作用不一样
正确答案: A
解析:
onload包含文档和资源加载完毕
ready指文档加载完毕
27.一个php后缀的文件,可以在什么环境下执行()
A mysql数据库
B 浏览器
C Apache服务器
D Windows系统
正确答案: C
解析:
无
28.同步和异步执行分别表示什么含义()
A 按顺序依次执行和同时分开执行
B 同时分开执行和按顺序依次执行
C 按一致的速度执行和按不同的速度执行
D 按相同的步骤执行和按不同的步骤执行
正确答案: A
解析:
生活中的同步和代码中的不一样
29.HTTP协议的默认端口号是多少?( )
A 8080
B 8888
C 80
D 3306
正确答案: C
解析:
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.关于call,apply,bind方法,下列说法正确的是
A 三者都可以用于继承
B 三者都可以改变this指向
C 三者参数传递一样
D 三者调用方式一样
正确答案: A,B
解析:
三者都可以改变this,所有都可以是 实现继承(构造函数继承的原理是改变函数的this)
4.svn在进行版本管理时,可以实现的功能有
A 更新至某个指定的版本
B 对某个文件进行锁定
C 创建多个分支
D 对某个文件解除版本控制
正确答案: A,B,C,D
解析:
四个选项都是svn可以实现的
5.jquery中移除jquery对象的方法有
A remove
B detach
C empty
D clear
正确答案: A,B,C
解析:
前三个都可以,clear不行
6.以下说法错误的是
A 对象一般存储在栈中
B 对象是类的实例化
C 类是对象的实例化
D 类不可以继承
正确答案: A,C,D
解析:
无
7.对象设置属性和属性值的方法正确的是
A obj.name=3
B obj[“name”]=3
C obj{name} = 3
D Obj->name=3;
正确答案: A,B
解析:
无
8.下列哪种属于设计模式
A 单例模式
B 观察者模式
C mvc
D mvvm
正确答案: A,B
解析:
9.构造函数可以创建对象执行的过程是
A 当使用了构造函数,并且new 构造函数(),那么就后台执行了new Object()
B 将构造函数的作用域给新对象,(即new Object()创建出的对象),而函数体内的this 就代表new Object()出来的对象
C 执行构造函数内的代码
D 返回新对象(后台直接返回)
正确答案: A,B,C,D
解析:
这是构造函数运行时,内部执行的一个过程,请识记并理解
创建一个新对象,改变this指向,执行构造函数里的代码,返回这个新对象
10.案例代码如下:
A $(“div.big”);
B $(“div .big”)
C $(“div:contains(‘大字体’)”);
D $(“form > div.big”);
正确答案: A,C,D
解析:
此题考察不同选择器的用法
B选项是选取div里具有big类名(后代)的jquery对象集合
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.在php中,下列哪些是输出(打印)函数。( )
A print
B echo
C print_r
D write
正确答案: A,B,C
解析:
无
15.前后端开发过程中,解决跨域的方法有那些。( )
A 后端代理
B jsonp
C xhr2
D ajax
正确答案: A,B,C
解析:
无
16.下面哪些是mysql的常用数据类型( )
A varchar
B int
C float
D text
正确答案: A,B,C,D
解析:
无
17.Jq中关于dom 增删改的操作有
A append
B appendTo
C remove
D detach
正确答案: A,B,C,D
解析:
几个都是dom操作的方法
18.下面可以实现继承的有
A 构造函数继承
B Object.create()
C 原型链继承
D es6 extends
正确答案: A,B,C,D
解析:
前三种是es5中继承,最后一个是es6的继承
19.引起跨域的情况有哪些.( )
A 域名不同
B 端口不同
C 同一域名,不同协议。
D 同一域名,同一端口,同一协议
正确答案: A,B,C
解析:
同源策略: 相同域名、端口号、传输协议
20.执行这个程序后打印的结果forEach=function (arr,fn) { for(var i=0,l=arr.length;i<l;i++){ var c=arr[i]; if(fn.call(c,i,c)===false){ return false; } } }; function box1(index,num) { console.log(index,num); } var arr=[10,9,8,7,6,5,4]; forEach(arr,box1)
A 0 10
B 3 7
C 2 4
D 5 5
正确答案: A,B,D
(二)
一、单选题(共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<l;i++){ var c=arr[i]; if(fn.call(c,i,c)===false){ return false; } } }; function box1(index,num) { console.log(index,num); } var arr=[10,9,8,7,6,5,4]; forEach(arr,box1)
A 0 10
B 3 7
C 2 4
D 5 5
正确答案: A,B,D
(三)
1.下列哪些属性不是事件对象event的属性
A clientX
B offsetX
C offsetLeft
D target
正确答案: C
解析:
offsetLeft为元素针对offsetParent的水平坐标,并不是事件对象中的鼠标位置
2.下列关于事件委托说法错误的是
A 事件委托可以解决事件绑定程序过多的问题
B 事件委托利用了事件捕获原理
C 事件委托可以提高代码性能
D 事件委托可以应用在click,onmousedown事件中
正确答案: B
解析:
事件委托利用的是事件冒泡的原理
3.要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容,下面语句正确的是
A
B
C
D <input type="text"onClick=“alert(value)”>
正确答案: B
解析:
onchange事件,在文本框内容发生变化切光标离开时触发
4.阻止事件冒泡,使用以下哪个方法
A stopPropagation()
B preventDefault()
C cancelBubble = false
D return false
正确答案: A
解析:
5.阻止浏览器默认行为,使用以下哪个方法
A stopPropagation()
B preventDefault()
C cancelBubble = false
D return true
正确答案: B
解析:
6.下面可以获取浏览器在卷动后,隐藏的文档部分的高度的属性是
A window.body.scrollTop
B document.body.scrollTop;
C document.scrolTop;
D documentElement.body.scrollTop
正确答案: B
解析:
基础属性
7.下列对的对常量的描述或定义不对的是
A 常量名只能用大写
B const PI = 3.11;
C const pi = 3.14
D 常量定义后不能被修改
正确答案: A
8.在HTML页面中,下列选项不属于鼠标相关事件的是
A onclick
B onmouseover
C onmousedown
D onchange
正确答案: D
解析: D是表单事件
9.下面哪个事件属性可以获取鼠标光标到页面可视区(浏览器边框)水平坐标
A clientX
B offsetX
C pageX
D screenX
正确答案: A
解析:
基本属性
10.JavaScript是运行在哪里的脚本语言
A server端(服务器端)
B web端(浏览器端)
C 在服务器运行后,把结果返回到客服端
D 在客户端运行后,把结果返回到服务器
正确答案: B
解析:
js就是运行在浏览器中的脚本语言。
11.要检测值是否为 NaN,应使用什么函数
A Number()
B parseInt()
C whoisNaN()
D isNaN()
正确答案: D
解析:
应记忆的方法
12.以下声明变量错误的是
A var a;
B let a;
C const a;
D function a;
正确答案: D
解析:
A为ES5声明变量,B、C为ES6声明变量/常量方式
D为错误选项
13.以下ES6字符串拼接中最推荐使用的是以下哪种写法?
A 今天天气+很好
B 今天天气${“很好”}
C 今天天气+“很好”;D‘今天天气+{“很好”};D 今天天气+“很好”;D‘今天天气+{很好};
正确答案: B
解析:
模板字符串的使用
14.以下选项中哪个是正则的量词 :
A 100
B num
C +
D .
正确答案: C
解析:
+代表其前边的字符重复1~无限多次
15.以下能获取到所有子节点(包括文字节点)的属性是 :
A firstElementChild
B children
C childNodes
D attributes
正确答案: C
解析:
A、获取第一个元素节点
B、获取所有元素子节点
C、获取所有子节点,包含文本节点
D、获取所有属性节点
16.0.1+0.7 == 0.8 (0.1 + 0.7 计算结果是浮点数)
A true
B false
C Infinity
D NaN
正确答案: B
解析:
由于计算机存储数字的特点,导致浮点数的计算存在误差。
0.1+0.7 === 0.7999999999999999
所以结果为false
17.下列代码的执行结果为 function fn(){ console.log( this ) }; fn();
A fn
B undefined
C window
D windows
正确答案: C
解析:
直接调用函数,其内部的this指向全局对象window
18.以下正则中不可以验证数字的是
A /[0-9]/
B /\D/
C /0|1|2|3|4|5|6|7|8|9/
D /\d/
正确答案: B
解析:
\D匹配的是非数字
19.“hello”.repeat(3)的执行结果是
A hello
B hellooo
C helloooo
D hellohellohello
正确答案: D
解析:
repeat()的功能是将字符串重复参数指定的次数
20.html文档中怎么区分节点对象的节点类型
A typeof
B type
C nodeType
D nodeName
正确答案: C
解析:
nodeType 属性返回以数字值返回指定节点的节点类型。
如果节点是元素节点,则 nodeType 属性将返回 1。
如果节点是属性节点,则 nodeType 属性将返回 2。
如果是文本内容,则 nodeType 属性将返回 3。
21.下列代码的执行结果是 var result = 12 + 2 + “12”- 2 * 2; document.write(result);
A 1221222
B 14124
C 1408
D 2820
正确答案: C
解析:
var result = 12 + 2 + “12”- 2 * 2;
看等号右边,从左到右运算,
12+2等于14,
14+“12”等于“1412”(字符串拼接)
“1412”- 4 等于1408(减号会进行隐式转换)
22.下列代码的执行结果是 for(var i = 0;i<10;i++){} document.write(i);
A 10
B 11
C 9
D 死循环
正确答案: A
解析:
for(var i = 0;i<10;i++){}
document.write(i);
for循环结束,才会执行下一个语句,循环结束的条件就是i=10的时候;
23.下列哪个不是Math对象的方法
A sort()
B floor()
C random()
D abs()
正确答案: A
解析:
sort()是数组的方法
24.关于mouseenter的说法,正确的是
A 与mouseup效果相同
B 当鼠标指针进入元素时,会发生mouseenter事件
C 和mouseover完全没有区别
D 与mousemove效果相同
正确答案: B
解析:
和mouseover效果相同,但是比mouseover好,不会引起冒泡
25.下列代码输出的结果是var y = 1;var x = y = typeof x;console.log(x);
A undefined
B 1
C y
D 报错
正确答案: A
解析:
在typeof x时,x只是被声明,但是没有被赋值
26.下列let声明变量说法有误的一项是
A let在某个{}内部使用时,外部不能访问该let声明的变量
B 用 let 声明变量没有声明提升
C let声明的变量, 变量声明之前该变量不可用,这种现象就称作暂时性死区;
D let 不允许重复修改变量
正确答案: D
解析:
不允许修改的是常量
27.下列关于事件监听器的说法,错误的是
A addEventListener第三个参数为false时,表示事件不会触发
B IE8以下使用attachEvent添加事件监听器
C addEventListener同一个事件可以绑定多个函数
D IE8以下浏览器使用detachEvent移除监听器.
正确答案: A
解析:
addEventListener()的第三个参数为false时,代表冒泡阶段
28.下列关于window.onload事件的相关说法正确的是
A window.onload事件可能触发多次
B window.onload事件是指的 DOM结构加载完成之后
C window.onload 事件可以绑定多个处理函数,并且都会触发
D window.onload 事件在页面所有的内容都加载完毕之后才触发
正确答案: D
解析:
在文档装载完成后会触发 load 事件。此时,在文档中的所有对象都在DOM中,所有图片,脚本,链接以及sub-frames都完成了装载。
29.下面的代码段,执行后的输出结果是 var x=“15”; str=x+5; A=parseFloat(str); document.write(A);
A 20
B 20.O
C NaN
D 155
正确答案: D
解析:
字符串拼接 15 + 5 结果为 155 转换成数字
30.下列代码的执行结果为var fn = “hello”;fn();function fn(){ console.log(“world”)};
A “hello”
B “world”
C undefined
D fn is not function
正确答案: D
解析:
变量声明提升&函数声明提升之后,结果为
var fn;
function fn(){ console.log(“world”) };
fn = “hello”
fn()
此时fn已经是一个字符串,调用失败,报错
1.下列哪个选项可以阻止事件冒泡(考虑兼容情况)
A window.event.cancelBubble=true
B e.preventDefault()
C e.stopPropagation()
D window.event.cancelBubble=false
正确答案: A,C
解析:
兼容IE 和 高级浏览器
2.实现一个元素的拖拽,至少需要那几个事件,请选择
A onmousedown
B onmousemove
C onmouseup
D onmouseover
正确答案: A,B,C
解析:
3.下面表示定时器的有
A keyframes
B setInterval
C setTimeOut
D animate
正确答案: B,C
解析:
111
4.下面哪些是es6新增的
A 箭头函数
B 解构赋值
C let关键字
D class 定义类
正确答案: A,B,C,D
解析:
111
5.for…of与for…in的区别,以下说法正确的是
A for in可以遍历对象,for of不能遍历对象
B for of可以用来遍历map集合,for in不能遍历map集合
C for in遍历数组得到的是数组的下标,for of遍历数组得到的是数组的元素
D for in遍历键 for of遍历值
正确答案: A,B,C,D
解析:
ABCD
6.对事件委托的说法正确的是
A 所有的事件都可以实现事件委托;
B 减少了事件绑定浏览器重绘的次数,提高了程序的执行效率;
C 减少事件的冗余绑定,节约了事件资源。
D 可以解决动态添加的元素节点无法绑定事件的问题;
正确答案: B,C,D
解析:
33
7.对事件绑定的说法正确的是
A 传统事件绑定(dom.onclick),不能同时绑定多个同一事件,后面的会覆盖前面的;
B 利用事件监听不能完成事件的绑定
C addEventListener()方法可以实现事件的绑定
D 传统事件触发,只能经过冒泡阶段,不经过捕获阶段;
正确答案: A,C
解析:
1111
8.事件中会产生哪些兼容问题
A 事件对象的创建
B 事件冒泡
C 浏览器的默认行为
D 事件委托中事件源的获取
正确答案: A,B,C,D
解析:
222111
9.将字符串转成大写和小写的方法是
A str.toSmallCase()
B str.toLowerCase()
C str.toUpperCase()
D str.toUpperChars()
正确答案: B,C
解析:
10.var a=“10”,以下能实现字符串转成数字的是
A a*1
B Number(a)
C a-0
D a+0
正确答案: A,B,C
解析:
11.下面哪些是全局方法
A prompt()
B match()
C alert()
D confirm()
正确答案: A,C,D
解析:
uuu
12.下面哪些属于数组的方法
A sort( )
B push()
C indexOf()
D join()
正确答案: A,B,C,D
解析:
13.可以用来遍历字符串的语句有
A for-in
B for
C for-of
D forEach
正确答案: A,B,C
解析:
Array.prototype.forEach 为数组对象的方法,不能遍历字符串
14.给元素添加事件监听正确的方法有
A oDiv.onclick()
B oDiv.attachEvent()
C oDiv.addEventListener()
D oDiv.detachEvent()
正确答案: B,C
解析:
A的正确用法为oDiv.onclick = function () {}
D为IE8接触事件绑定的方法
15.以下字符串方法支持正则表达式的有哪些
A indexOf
B match
C replace
D search
正确答案: B,C,D
解析:
字符串的一些方法是和正则一起使用比较多的,比如match()匹配、replace()替换、search()查找
16.假设有一输入框的DOM名称为otxt,以下能获取输入框值(value)的是
A otxt.getAttribute(“value”)
B otxt.value
C otxt[“value”]
D otxt.getValue()
正确答案: A,B,C
解析:
getAttribute()是获取属性值的方法,因为value就是属性值,otxt.value和otxt[“value”]都可以获取属性值,所以ABC正确,D选项,没有getValue()方法,错误
17.拖拽效果中,需要用到的事件有
A onmousemove
B onmousedown
C onmouseup
D onclick
正确答案: A,B,C
解析:
拖拽的原理:按下的时候(onmousedown)通过鼠标的坐标和盒子的offsetLeft和offsetTop计算差值offsetX和offsetY;按着盒子拖拽的过程中(onmousemove)从新用新的坐标和刚才计算的差值计算新的left和top,这是拖拽的原理。所以得 :left=ev.clientX-offsetX; top=ev.clientY-offsetY;正确答案就是A B
18.下面哪些方法不是正则的方法
A search()
B match ()
C replace ( )
D test ()
正确答案: A,B,C
解析:
ABC都是字符串方法
19.判断str是否含有字符串"abc",以下不正确的是
A str.repl(/abc/)!=-1
B str.indexOf(‘abc’) >= 0
C str==‘abc’
D ‘abc’.includes(str)
正确答案: A,C,D
解析:
A选项:字符串没有index()方法,错误;
B选项:indexOf()就是检测数组是否含有某个数的,有返回下标,没有返回-1,正确选项
C选项:str=='abc’这个是检测完全匹配的,不能检测到是否包含有,这个写法要完全匹配才正确,所以错误
D选项:字符串没有includes()方法,这个方法是数组的方法,错误
20.解构赋值可以做到以下哪些事
A 一次性可以定义多个变量
B 可以作用在函数的传参上,以对象的方式传递,参数顺序也无须保持一致
C 可以轻松实现两个数的交换
D 可以实现一个函数返回多个结果
正确答案: A,B,C,D