以下题目,实为杜撰,如有雷同,纯属抄袭
1-请选出正确的选项?(知识点:new、原型链、instanceof 、对象引用)
var a=function test(a){
this.a=a;
}
var b=function test(b){
this.b=b;
}
var A=new a(1);
var B=new b(2);
a.prototype={constructor:null};
b.prototype.constructor=null;
console.log(A instanceof a);
console.log(B instanceof b);
输出分别是:
A:true true
B:false false
C:false true
D:true false
2-以下代码会报错的是哪个?(知识点:底层解析对声明和表达式处理的区别、立即执行函数)
A:{"name","zhang"}.hasOwnProperty("name");
B: var a=function (){return;}();
C: !function aaa(){return;}();
D: function aaa(){return;}(1);
3-请选出正确的选项?(知识点:JavaScript参数按值传递、变量提升)
var a={"age":10};
function change(obj){
b=obj;
obj.age=11;
obj={"age":12};
}
change(a);
console.log(a.age);
console.log(b.age);
输出分别是:
A:10 12
B:11 10
C:11 12
D:11 11
4-请选出正确的选项?(知识点:null 、 undefined 、一元运算转换、NAN)
console.log(+undefined==+null);
console.log(+null==+null);
console.log(+undefined==+undefined);
输出分别为
A: false true true
B: true true true
C: false false true
D: false true false
5-请选出正确的选项?(知识点:new 和 delete)
function deletePropertyA(name){
this.name=name;
delete this.name;
var name=name;
delete name;
return name;
}
function deletePropertyB(name){
this.name=name;
delete this.name;
var name=name;
delete name;
return {"name":name};
}
console.log(new deletePropertyA("wang").name)
console.log(new deletePropertyB("wang").name)
输出分别为:
A: wang undefined
B: undefined undefined
C: wang wang
D: undefined wang
6-请说出控制台输出是?(弄清楚js的new出来到底是什么)
var a=1;
var b={};
function A(){
return a;
}
function B(){
return b;
}
console.log(new A() === new A());
console.log(new B() === new B());