前端笔试选择题——day3

文章提供了几道前端笔试选择题,涉及对象属性重叠、setInterval的生命周期、对象引用、三元运算符的比较规则以及Set数据结构的使用。解析强调了在JavaScript中对象的引用特性,以及逻辑运算符在确定真值时的行为。
摘要由CSDN通过智能技术生成

前端笔试选择题——day3

输出什么

const obj = {a:'one', b:'two', c:'three'}
console.log(obj) // {a:"three", b:"two"}

解析:
如果对象有两个具有相同名称的键,则将替换原有的值


将会发生什么

let config = {
	alert:setInterval(() => {
		console.log('Alert!')
	},1000)
}

config = null

A. setInterval的回调不会被调用
B. setInterval的回调被调用一次
C. setInterval的回调仍然会被每秒调用
D. 我们从没调用config.alert

解析:
一般情况下我们将对象赋值为null,那些对象会被进行垃圾回收,因为已经没有对这些对象的引用了。
然而,setInterval的参数是一个箭头函数(所以上下文绑定到对象config),回调函数仍然保留着对config的引用。只要存在引用,对象就不会被垃圾回收。


输出什么

function checkAge(data){
    if(data === {age:18}) {
        console.log('You are an adult!')
    } else if (data == {age:18}) {
        console.log('You are still an adult')
    } else {
        console.log('Hmm.. You do not have an age I guess')
    }
}

checkAge({age:18})

A. You are an adult!
B. You are still an adult
C. Hmm… You do not have an age I guess

解析:
使用=====比较的是引用地址,而不是比较它们的值


JavaScript全局执行上下文为你创建了两个东西:全局对象和this关键字

A. 对
B. 错误
C. 视情况而定


输出什么

console.log(false || {} || null)
console.log(null || false || '')
console.log([] || 0 || true)

A. false null []
B. null “” true
C. {} “” []
D. null null true

解析:
使用||运算符,我们可以返回第一个真值。如果所有值都是价值,则返回最后一个值
(false || {} || null){}是唯一的真值
(null || false || '')全是假值,返回最后一个{}
([] || 0 || true)[]为真值


输出什么

const set = new Set()

set.add(1)
set.add('Lydia')
set.add({name:'Lydia'})

for(let item of set){
    console.log(item + 2)
}

A. 3,NaN,NaN
B. 3,7,NaN
C. 3,Lydia2,[Object object]2
D. “12”,Lydia2,[Object object]2

解析:
{name:"Lydia"}是一个对象。数字和对象都不是字符串,因此将两者都字符串化。每当我们对常规对象进行字符串化,它就会变成[Object object]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值