前端题

11 篇文章 0 订阅

1、输出结果

[...'abcd']

答案:[“a”, “b”, “c”, “d”]

解析:string 类型是可迭代的。扩展运算符将迭代的每个字符映射成一个元素。

2、setInterval 方法的返回值是什么?

setInterval(() => console.log('Hi'), 1000)

答案:一个唯一的id

解析:会返回一个ID,用于clearInter清除定时器

3、输出结果

function* generator(i) {
  yield i;
  yield i * 2;
}

const gen = generator(10);

console.log(gen.next().value);
console.log(gen.next().value);

答案:10,20

解析:
第一个next()执行到第一个yield, 第二个执行到第二个yield, 可以理解为推一步走一步,不推不走

4、输出结果

!!null     
!!''
!!1

答案: false false true

解析:
null 是 false。!null 的值是 true。!true 的值是 false。
““是 false。!”” 的值是 true。
!true 的值是 false。 1 是 true。!1 的值是 false。!false 的值是 true。

5、返回值

const firstPromise = new Promise((res, rej) => {
  setTimeout(res, 500, "one");
});

const secondPromise = new Promise((res, rej) => {
  setTimeout(res, 100, "two");
});

Promise.race([firstPromise, secondPromise]).then(res => console.log(res));

答案:two

解析:
race就是赛跑的意思,谁先返回结果就是最后结果,不管成功还是失败,两个定时器第二个时间短所以先返回
settimeout(callback,time,…params),从第三个参数开始,后面的参数都会传递给callback

6、返回值

let person = { name: "Lydia" };
const members = [person];
person = null;

console.log(members);

答案:[{ name: “Lydia” }]

解析:
当你将引用从一个变量分配至另一个变量时,其实只是执行了一个 复制 操作。
没有修改数组第一个元素的值,而只是修改了变量person的值,因为元素(复制而来)的引用与person不同。members的第一个元素仍然保持着对原始对象的引用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值