这些前端大厂面试题你会做吗?每日10题大厂面试题(八)
文章目录
- 题1(模版字符串)
- 题2(引用复制)
- 题3(Delete)
- 题4(yield)
- 题8(扩展运算符)
- 题10(箭头函数)
题1(模版字符串)
下面代码输出的是
function getPersonInfo(one, two, three) {
console.log(one);
console.log(two);
console.log(three);
}
const person = 'Lydia';
const age = 21;
getPersonInfo`${ person} is ${ age} years old`
答案:[“”, “is”, “years old”] Lydia 21
这道题主要考察:
- 模版字符串:如果使用标记的模版字符串,则第一个参数的值始终是字符串值的数组。其余参数获取传递到模版字符串中的表达式的值!
题2(引用复制)
下面代码输出的是
let person = { name: 'Lydia'}
const members = [person]
person = null
console.log(member)
答案:[null]
这道题主要考察:
- 引用复制:当设置两个对象彼此相等时,它们会通过引用进行交互。但是当你将引用从一个变量分配至另一个变量时,其实只是执行了一个复制操作
题3(Delete)
下面代码输出的是
Dog.prototype.bark = function () {
console.log('Woof I am ${ this.name}`);
};
const pet = new Dog('Mara');
pet.bark();
delete Dog.prototype.bark;
pet.bark();
答案:“Woof I am Mara”, TypeError
这道题主要考察:
- Delete: delete关键字删除对象的属性,对原型也是适用的。删除了原型的属性后,该属性在原型链上就不可用了,当我们尝试调用一个不存在的函数时TypeError异常会被抛出。
题4(yield)
如何能打印出console.log语句后注释掉的值
function* startGame() {
const answer = yield 'Do you love Javscript';
if (answer !== 'Yes') {
return 'oh wow... Guess we are gone here'
}
return 'Javascript loves you back';
}
const game = startGame();
console.log(); // Do you love Javascript
console.log(); // Javascript loves you back
答案:game.next().value and game.next(‘Yes’).value
这道题主要考察:
- yield: next方法可以带一个参数,该参数会被当作上一个yield表达式的返回值。
题8(扩展运算符)
下面输出的是
[...'lydia']
答案:[‘l’, ‘y’, ‘d’, ‘i’, ‘a’]
这道题主要考察:
- 扩展运算符:字符串是可迭代的。扩展运算符将迭代的每个字符映射到一个元素
题10(箭头函数)
下面输出的是
const shape = {
radius: 10,
diameter() {
return this.radius * 2;
},
perimeter: () => 2 * Math.PI * this.radius
};
shape.diameter():
shape.perimeter();
答案:20 and NaN
这道题主要考察:
箭头函数:对于箭头函数,this关键字指向是它所在上下文的环境,与普通函数不同,这意味着当我们调用perimeter时,它不是指向shape对象,而是指其定义时的环境
小伙伴们今天的学习就到这里了,如果觉得本文对你有帮助的话,欢迎转发,评论,收藏,点赞!!!
每天学习进步一点点,就是领先的开始。如果想继续提高,欢迎关注我,或者关注公众号”祯民讲前端“。大量前端技术文章,面试资料,技巧等助你更进一步!
还没有评论,来说两句吧...