Web前端面试题,web前端开发面试题
问题一:const a = {};
const b = { key: };
const c = { key: c };
a[b] = 123;
a[c] = 456;
console.log(a[b]);
上面代码的输出结果是什么?
A. 123
B. 456
C. undefined
D. ReferenceError
解析:首先我们是想将一个对象设置为对象a的键,值为123,但是使用对象的时候会自动转换为字符串,而对象转成字符串是[Object object] [[Object object]] = 123;同理,a[c] [Object object],所以后面的赋值会覆盖前一次操作;打印的时候a[b]也是同理,所以自然结果是B
问题二:使用哪个构造函数可以成功继承Dog类?
class Dog {
constructor(name) {
this.name = name;
}
};
class Labrador extends Dog {
// 1
constructor(name, size) {
this.size = size;
}
// 2
constructor(name, size) {
super(name);
this.size = size;
}
// 3
constructor(size) {
super(name);
this.size = size;
}
// 4
constructor(name, size) {
this.name = name;
this.size = size;
}
}A. 1
B. 2
C. 3
D. 4
解析:在子类中,在调用super之前不能访问到this关键字,如果这样做将会抛出错误,所以A和D排除;使用super的时候,需要用给定的参数来调用父类的构造函数,父类的构造函数接受name参数,所以我们需要将name传给super;同时子类Labrador需要接受两个参数,一个是name继承子父类,另一个是size,是他的额外属性,故选B。
以上就是小科今日整理的Web前端面试题及解析资料,希望为正在学习Web前端或正在找工作的同学提供参考。