js 面试题

单选题

1.不属于同源策略限制条件的
A 端口
B 协议
C 域名
D 网址
正确答案: D
解析: 无
2.ES5中不能实现继承的关键字
A prototype
B call
C apply
D extends
正确答案: D
解析:无
3.

alert(username);
var username="leson";结果为?
A  undefined
B  leson
C  null
D  报错
正确答案: A
// 解析:变量提升,预解析
有代码: 
var obj1={a:[1], b:1 }; 
var obj2={a:[2],c:2 }; 
var obj = Object.assign(obj1,obj2); 运行之后obj的结果为?
A  {a:[1],b:1}
B  {a:[1,2],b:1,c:2}
C  {a:[2],b:1,c:2}
D  {a:[2],c:2}
正确答案: C
解析:
Object.assign是ES6新添加的接口,主要的用途是用来合并多个JavaScript的对象。

5.对于js闭包的理解,以下说法错误的是
A 一个闭包就是当一个函数返回时,一个没有释放资源的栈区
B 闭包能够访问一个函数中的局部变量
C 闭包使用不当会造成内存泄露
D 闭包需定义在匿名函数里
正确答案: D
解析:闭包是函数中的函数,不一定非得在匿名函数中
6.下列哪一项不是jquery进行文档操作的方法
A append()
B inner()
C wrap()
D clone()
正确答案: B
解析:
inner() 不是
7.下面的this指向不是window的是那个
A 全局中的this
B 普通函数,直接调用的函数中获取的this
C 按钮侦听的事件函数中的this
D 函数通过call调用时,第一个参数填入null,函数中的this
正确答案: C
解析:
鼠标事件中this指向被侦听的对象
8.

下面函数执行后返回的结果是 
function fun1(x) { 
	var z = fun2(x+1);            
	console.log(z);
}
function fun2(a){
	if(a<10){
		fun1(a+1);
	}else{
		return a;
	}        
}  
fun1(2);
A  10
B  11
C  12
D  13
正确答案: B
解析:
这是回调函数的使用

9.函数的length属性是
A 函数的行数
B 函数的参数个数
C 函数的返回个数
D 永远是0
正确答案: B
解析:
函数的length是参数的个数
10.

执行下列程序的结果会是
var obj1=(function(){
	return {
  		a:1,
   		b:2,
   		fun2:function(){
    		console.log(this.a+this.b);
     	} 
    } 
 })(); 
obj1.fun2();
A  3
B  4
C  1
D  2
正确答案: A
解析:

11.下面说法错误的是
A 闭包是指有权访问另一个函数作用域中的变量的函数
B 闭包的最常见的方式就是在一个函数内创建另一个函数
C 闭包可以被垃圾回收机制所清理
D 函数内部可以引用外部的参数和变量
正确答案: C
解析:
闭包不可以被垃圾回收机制所清理
12.

下列输出结果正确的是 
var a = 0; 
var obj = { 
	fn : function(a){
 		a = 2; 
 		a --; 
 	} 
 } 
 obj.fn(a); 
 alert(a);
A  0
B  1
C  2
D  报错
正确答案: A
解析:函数中的a是局部变量,在外面获取不到

13.在ES6(2015)中,哪个是原先没有的名词
A 函数
B 类
C 递归
D 过程
正确答案: B
解析:无
14.在jQuery中$变量是什么数据类型
A object
B array
C number
D function
正确答案: A
解析:无
15.当DOM加载完成后要执行的函数,下面哪个是正确的
A jQuery(expression, [context])
B jQuery(html, [ownerDocument])
C jQuery(callback)
D jQuery(elements)
正确答案: C
解析:jQuery(callback)是jQuery(document).ready()的简写
16.下列哪个方法不能改变函数内部this的指向
A bind
B change
C apply
D call
正确答案: B
解析:bind call apply均可改变this指向,注意使用的区别
17.jQuery哪个方法可以清空对象内所有的子元素
A remove()
B removeAll()
C deleteAll()
D empty()
正确答案: D
解析:remove()将自身及子元素移除
empty()清空所有子元素,包括文本节点
18.什么是闭包
A 闭包是指有权访问另一个函数作用域中的变量的函数
B 闭包是指有权访问任意函数作用域中的变量的函数
C 闭包是指有权访问全局个函数作用域中的变量的函数
D 闭包是指有权访问局部个函数作用域中的变量的函数
正确答案: A
解析:概念题
19.原型的概念
A
每声明一个function,都有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加
B
每声明一个对象,都有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加
C
每声明一个function,都有__proto___原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加
D
每声明一个function,都没有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加
正确答案: A
解析:
原理题,每一个函数都有一个原型对象prototype
20.原型链
A
每个实例对象都包含一个内部属性_prototype_。该属性是一个指针,指向构造函数的prototype。若构造函数的原型对象的_proto_属性为再上一层函数。在此过程中就形成了原型链
B
每个实例对象都包含一个内部属性_proto_。该属性是一个指针,指向构造函数的prototype。若构造函数的原型对象的prototype_属性为再上一层函数。在此过程中就形成了原型链
C
每个实例对象都包含一个内部属性_proto_。该属性是一个指针,指向构造函数的_proto_。若构造函数的原型对象的_proto_属性为再上一层函数。在此过程中就形成了原型链
D
每个实例对象都包含一个内部属性_proto_。该属性是一个指针,指向构造函数的prototype。若构造函数的原型对象的_proto_属性为再上一层函数。在此过程中就形成了原型链
正确答案: D
解析:原理题,原型链是靠__proto__维护的,顶端指向Object.prototype
21.混合继承是
A 混合了构造函数继承和原型链继承
B 其它都不对
C 混合了es6继承和原型链继承
D 混合了构造函数继承和es6继承
正确答案: A
解析:概念题
22.jquery选择器的结果是什么
A 对象
B 数组
C 函数
D undefined
正确答案: A
解析:获取到的是一个伪对象(类数组对象)
23.
jquery中发起添加类名的方法是
A ajax
B addClass
C getClass
D setClass
正确答案: B
解析:识记题
24.

jquery中实现动画的方法是
A  $.animate
B  $().animate
C  animate
D  $.startMove
正确答案: B
解析:animate()是jQuery实例方法,调用示例:$("div").animate()

25.es6继承的语法
A class
B class extends
C class.prototype
D class extend
正确答案: B
解析:语法题 例如 class A extends B{}
26.php定义变量正确的是
A var a = 5;
B $a = 10;
C int b = 6
D var $a = 12;
正确答案: B
解析:无
27.php的源码是( ) 开源语言
A 开放的
B 封闭的
C 需购买的
D 完全不可见的
正确答案: A
解析:无
28.同步和异步执行分别表示什么含义()
A 按顺序依次执行和同时分开执行
B 同时分开执行和按顺序依次执行
C 按一致的速度执行和按不同的速度执行
D 按相同的步骤执行和按不同的步骤执行
正确答案: A
解析:生活中的同步和代码中的相反
29.

执行下列程序的结果是 
function fn3() { 
	arguments.callee.play(); 
} 
fn3.play=function () { 
	console.log("aaa"); 
}; 
fn3()
A  报错
B  空值
C  play
D  "aaa"
正确答案: D
解析:callee的使用
以下运行的结果是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 的实例

二、多选题(不定项选择)
1.下面关于构造函数的优点,描述正确的有哪些
A 构造函数可以通过new关键字创建对象,对象的创建比较规范
B 构造函数只能创建一个对象
C 可以解决多个同类对象创建时,代码重复的问题
D 构造函数创建的对象,创建出的对象是相等关系
正确答案: A,C
解析:无
2.使用new运算符生成一个实例时,需要执行的步骤有那些
A 创建一个新对象
B 改变this指向
C 执行构造函数里的代码
D 返回一个对象
正确答案: A,B,C,D
解析:
当代码 new Foo(…) 执行时,会发生以下事情:
一个继承自 Foo.prototype 的新对象被创建。
使用指定的参数调用构造函数 Foo ,并将 this 绑定到新创建的对象。new Foo 等同于 new Foo(),也就是没有指定参数列表,Foo 不带任何参数调用的情况。
由构造函数返回的对象就是 new 表达式的结果。如果构造函数没有显式返回一个对象,则使用步骤1创建的对象。(一般情况下,构造函数不返回值,但是用户可以选择主动返回对象,来覆盖正常的对象创建步骤)

3.关于call,apply,bind方法,下列说法正确的是
A 三者都可以用于继承
B 三者都可以改变this指向
C 三者参数传递一样
D 三者调用方式一样
正确答案: A,B
解析:三者都可以改变this,所有都可以是 实现继承(构造函数继承的原理是改变函数的this)
4.以下哪些属性是defineProperty可以定义的
A Enumerable
B Configurable
C Writable
D Value
正确答案: A,B,C,D
解析:无
6.以下说法错误的是
A 对象一般存储在栈中
B 对象是类的实例化
C 类是对象的实例化
D 类不可以继承
正确答案: A,C,D
解析:无
7.下面说法错误的是
A 递归就是函数运行别的函数
B 回调就是函数运行自己
C 侦听函数就是递归
D 如果递归次数过多会出现堆栈上限溢出
正确答案: A,B,C
解析:无
8.jquery中获取对象的方式正确的是
A $()
B jQuery()
C jquery()
D $jQuery()
正确答案: A,B
解析:无
9.获取

内容
标签里的文本内容
A $("#content").val();
B $("#content").html()
C $("#content").text()
D $("#content").innerHTML()
正确答案: B,C
解析:
val()获取表单元素value值的
html()获取元素内容的,包含html结构
text()获取元素文本内容的
innerHTML是原生DOM对象的属性,无此方法
10.

案例代码如下:
<form> 
	<div class="big">大字体</div>          
	<div class="small">小字体</div>
</form>     
 请选取文本是"大字体"的div对象
A  $("div.big");
B  $("div   .big")
C  $("div:contains('大字体')");
D  $("form > div.big");
正确答案: A,C,D
解析:此题考察不同选择器的用法
B选项是选取div里具有big类名(后代)的jquery对象集合

11.下面哪个可以改变this
A call
B bind
C apply
D test
正确答案: A,B,C
解析:call apply bind 均能改变this指向,注意用法不同
12.为什么要使用jQuery?jquery有哪些好处
A 它有强大的选择器,出色的DOM操作的封装
B 出色的浏览器的兼容性
C 完善的ajax
D 有可靠的事件处理机制
正确答案: A,B,C,D
解析:jquery最大的特点在查询,并封装了大量的方法进行DOM操作,事件处理及ajax请求等
13.下面是设计模式的是
A 单例模式
B 观察者模式
C 测试模式
D 视图模式
正确答案: A,B
解析:单例模式和观察者模式,是常见的设计模式
14.前后端开发过程中,解决跨域的方法有那些。( )
A 后端代理
B jsonp
C xhr2
D ajax
正确答案: A,B,C
解析:无
15.关于jQuery的优点说法正确的是
A 最少的代码做多的事情
B 性能支持比较好
C 节约学习成本
D 让DOM操作变的简单
正确答案: A,B,C,D
解析:无
16.下面是jquery方法的是
A $(".box").attr()
B $(".box").css()
C $(".box").remove()
D $(".box").html()
正确答案: A,B,C,D
解析:无
17.jquery中关于操作元素节点class属性的操作有
A addClass
B removeClass
C attr(“class”, “box”)
D setClass
正确答案: A,B,C
解析:
A是添加类名
B是删除类名
C是切换类名
18.Ajax的请求方式有哪些。( )
A post
B get
C method
D putx
正确答案: A,B
解析:无
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
解析:
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值