这些前端大厂面试题你会做吗?每日10题大厂面试题(六)

文章目录

  • 题1(剩余参数)
  • 题2(NaN, Number.isNaN)
  • 题3(TypeError)
  • 题4(自动分号插入)
  • 题5(Symbol)
  • 题8(ReferenceError)
  • 题10(Array.prototype)

题1(剩余参数)

下面输出的是

function getItems(fruitList, ...args, favoriteFruit) {
     
	return [...fruitList, ...args, favoriteFruit]
}
getItems(['banana', 'apple'], 'pear', 'orange')

答案:SyntaxError
这道题考察的是:

  • 剩余参数:…args是剩余参数,剩余参数的值是一个包含所有剩余参数的数组,并且只能作为最后一个参数。上述示例中,剩余参数是第二个参数,这是不可能的,并会抛出语法错误

题2(NaN, Number.isNaN)

下面输出的是:

const name = 'Lydia Hallie';
const age = 21;

console.log(Number.isNaN(name))
console.log(Number.isNaN(age))

console.log(isNaN(name))
console.log(isNaN(age))

答案:false false true false
这道题考察的是:

  • NaN:NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。NaN 与所有值都不相等,包括它自己。
  • Number.isNaN:方法Number.isNaN,可以检测传递的值是否为数字值并且是否等价于NaN。方法isNaN,可以检测传递的值是否为数字

题3(TypeError)

下面输出的是:

const name = 'Lydia'
console.log(name())

答案:TypeError
这道题主要考察:

  • TypeError: 变量name保存字符串的值,而不是函数,当值不是预期类型的时候,会抛出TypeErrors, TypeError: name is not a function

题4(自动分号插入)

下面输出的是

function nums(a, b) {
     
	if
	(a > b)
	console.log('a is bigger')
	else
	console.log('b is bigger')
	return 
	a + b
}
console.log(nums(4, 2))
console.log(nums(1, 2))

答案:a is bigger, undefined and b is bigger, undefined
这道题主要考察:

  • 自动分号插入:在javascript中,我们不必显式地编写分号(,但是javascript引擎仍然在语句之后自动添加引号。在这里,我们在新的一行上写了一个return语句和另一个值a+b,引擎会在return后加;,而不是a+b后。这意味着永远不会到达a+b

题5(Symbol)

下面输出的是

const info = {
     
	[Symbol('a')]: b
}
console.log(info)
console.log(Object.keys(info))

答案:{Symbol(‘a’): ‘b’} and []
这道题主要考察:

  • Symbol: Symbol提供完全唯一的值,Symbol类型是不可枚举的,Object.keys方法返回对象上的所有的可枚举的键属性。Symbol类型是不可见的,并返回一个空数组,而记录整个对象时,所有属性都是可见的,甚至不可枚举的属性

题8(ReferenceError)

下面输出的是

const {
     name: myName} = {
     name: 'Lydia'}
console.log(name)

答案:ReferenceError
这道题主要考察:

  • ReferenceError: 这里用解构赋值给myName赋值了,但是name是一个未定义的变量,调用一个未定义的变量会引起语法错误,也就是ReferenceError

题10(Array.prototype)

下面哪些方法修改了原数组

const emojis = [1, 2, 3]
emojis.map(x => x + 1)
emojis.filter(x => x !== 2)
emojis.find(x => x !== 2)
emojis.reduce((acc, cur) => acc + 3)
emojis.slice(1, 2, 1)
emojis.splice(1, 2, 1)

答案:splice
这道题主要考察:

  • Array.prototype: 数组原型中能修改原数组的方法,除了push,pop,shift, unshifit这些推入推出的方法,还有reverse和sort使得数组排序的方法以外,就只有splice会修改原数组

       小伙伴们今天的学习就到这里了,如果觉得本文对你有帮助的话,欢迎转发,评论,收藏,点赞!!!
       每天学习进步一点点,就是领先的开始。如果想继续提高,欢迎关注我,或者关注公众号”祯民讲前端“。大量前端技术文章,面试资料,技巧等助你更进一步!

你可能感兴趣的:(每日10题大厂面试题,javascript,面试,大厂面试,bat,前端面试)