前端笔试选择题——day2

文章包含了一系列前端笔试题目,涉及常量数组的修改、事件传播的顺序、对象属性访问、数组操作方法以及函数调用和剩余参数的使用。还讨论了eval函数的执行效果。解答解析了常量数组可以通过push等方法修改,但不能重新赋值;事件传播的顺序是从捕获到目标再到冒泡;以及如何正确使用对象的属性和函数调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端笔试选择题——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

解析:
mapfilterslice返回一个新数组,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会为字符串传递的代码求值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值