前端面试题分享(持续更新中)

声明:我不是面试题的发明者,我只是一个搬运工

1.属性名的问题

var a = [
    b = { key: 1 },
    c = { key: '2' }
]
a[b] = 12;
a[c] = 23 ;
console.log(a[b]);

此面试题主要考察了3个点
1.通过[]是调取什么(读取的是属性的值)
2.通过[]来调方法[]内部是读取的什么(是将读取的值转换为字符串)
3.如何转换b的值为字符串(使用toString()方法)
4.对象的值转换为字符串后是什么([object Object])
即本题a[b] = a[c] = a[{任意对象}]

所以最终答案是23

2.等式成立

var a =;
console.log(
    a == 1 &&
    a == 2 &&
    a == 3 
);

?问好是什么时,能使打印为true
此面试题主要考察了2个点

  1. ==隐式转换
  2. 转换方法(首先使用valueOf(),不行时再使用toString()来转换)

所以最终答案为:

a = {
	n:1,
	valueOf:function(){
		return this.n++
            }
        }

当然大家可以想一下如果将a == 3改为a == 4时,改如何修改呢

var a =;
console.log(
    a == 1 &&
    a == 2 &&
    a == 4 
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值