ES5中不能实现继承的关键字
A prototype
B call
C apply
D extends
正确答案: D extends //属于ES6
不属于常见23种设计模式
A 单例
B MVC
C 观察者
D 策略
正确答案: B
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
有代码 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的对象。
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,且返回目标对象
Object.assign(target, …sources)
var target = {a : 1}; //目标对象
var source1 = {b : 2}; //源对象1
var source2 = {c : 3}; //源对象2
var source3 = {c : 4}; //源对象3,和source2中的对象有同名属性c
Object.assign(target,source1,source2,source3);
对于js闭包的理解,以下说法错误的是
A 一个闭包就是当一个函数返回时,一个没有释放资源的栈区
B 闭包能够访问一个函数中的局部变量
C 闭包使用不当会造成内存泄露
D 闭包需定义在匿名函数里
正确答案: D
解析:闭包是函数中的函数,不一定非得在匿名函数中
可以通过以下哪个运算符或方法判断一个实例属于某个类
A typeof
B instanceof
C isPrototypeOf
D hasOwnProperty
正确答案: B
解析:instanceof可以判断一个实例属于某个类
关于原型对象以下说法错误的是
A 每一个函数都有一个原型对象
B 每一个构造函数都有一个原型对象
C 原型对象上的属性和方法能被实例访问
D 原型对象上的属性和方法能被子类(代码里)访问
正确答案: D
解析: 原型对象上的属性和方法能被实例访问
以下哪一个不是常见的设计模式
A 单例模式
B 代理模式
C 飞行模式
D 观察者模式
正确答案: C
解析:飞行模式,手机里才有的模式!
有代码 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
有代码 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
下列哪一项不是jquery进行文档操作的方法
A append()
B inner()
C wrap()
D clone() $(selector).clone(includeEvents)
正确答案: B
解析:inner() 不是
//wrap() 方法把每个被选元素放置在指定的 HTML 内容或元素中。
//append() 方法在被选元素的结尾(仍然在内部)插入指定内容。
//clone() 方法生成被选元素的副本,包含子节点、文本和属性。
以下程序最后计算的结果是 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