前端笔试选择题——day2
哪一选项会导致报错
const emojis = ['?','??','???','⭐']
emojis.push('?')
emojis.slice(0,2)
emojis = [...emojis,"?"]
emojis.length = 0
A. emojis.push(‘?’)
B. emojis.slice(0,2)
C. emojis = […emojis,“?”]
D. emojis.length = 0
解析:
const定义的数组可被修改,如push
等,又或者设置数组的长度
但是不能被重新赋值
事件传播的三个阶段
A. 目标>捕获>冒泡
B. 冒泡>目标>捕获
C. 目标>冒泡>捕获
D. 捕获>目标>冒泡
输出什么
const person = {
firstName:'Lydia',
lastName:'Hallie',
pet:{
name:'Mara',
breed:'Dutch Tulip Hound'
},
getFullName() {
return `${this.firstName} ${this.lastName}`
}
}
console.log(person.pet?.name) // "Mara"
console.log(person.pet?.family?.name) // undefined
console.log(person.getFullName?.()) // "Lydia Hallie"
console.log(member.getFullName?.()) // "Uncaught ReferenceError: member is not defined"
哪些方法可以修改原数组
A. map
B. filter
C. find
D. reduce
E. slice
F. splice
解析:
map
、filter
、slice
返回一个新数组,find
返回一个元素,reduce
返回一一个值
详细可见:https://juejin.cn/post/7107415332666474504#heading-13
以下代码输出什么?
function getAge(...args) {
console.log(typeof args)
}
getAge(21)
A. “number”
B. “array”
C. “object”
D. “NaN”
解析:
args
是剩余参数,是一个数组,但是通过typeOf
是无法得到"array"
输出什么?
const add = x => x + x
function myFunc(num = 2, value = add(num)) {
console.log(num, value)
}
myFunc()
myFunc(3)
A. 2 4 and 3 6
B. 2 NaN and 3 NaN
C. 2 Error and 3 6
D. 2 4 and 3 Error
输出什么
const output = `
${[] && 'Im'} should ${'' && 'not'} ...
`
console.log(output) // " Im should ... "
解析:
[]
为真,''
为假
扩展:
console.log(!{}) // false
console.log(![]) // false
console.log(!{} == []) // true
console.log(!{} == ![]) // true
输出什么
function Person(firstName,secondName){
this.firstName = firstName
this.secondName = secondName
}
const lydia = new Person('Lydia','Hallie')
const sarah = Person('Sarah','Smith')
console.log(lydia) // [object Object] { firstName: "Lydia", secondName: "Hallie" }
console.log(sarah) // undefined
解析:
对于sarah,我们没有使用new
关键字。使用new
时,它指的是我们创建的新空对象。但是, 如果你不添加new它指的是全局对象!
我们实际做的是定义global. firstName = ' Sarah'
和global.lastName = ' Smith
。sarah本身的返回值是undefined。
输出什么
const sum = eval('10*10+5')
console.log(sum)
A. 105
B. “105”
C. TypeError
D. “10*10+5”
解析:
eval
会为字符串传递的代码求值