一周热文和进阶面试题 #6

Posted 前端开发博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一周热文和进阶面试题 #6相关的知识,希望对你有一定的参考价值。

点击下方“前端开发博客”关注公众号

回复“面试”获取面试精选文章

上周的标题,应该是第五期,结果没改,还是第四期,那这次就直接跳到第六期了。

忙碌的一周过去了,一起来汇总一下前端开发博客最近一周有哪些值得阅读的东西吧。

上周总结

文章排行

  1. 90% 前端都会的 ES6 简化代码技巧,你用过哪些?

  2. 33个前端常用的JavaScript函数封装方法

  3. 如何让10万条数据的小程序列表如丝般顺滑

  4. 六则糟糕代码的优化方案

  5. 程序员遇到 Bug 时的 30 个反应,你是哪一种?

  6. 如何收集前端页面性能参数?

  7. 辞退了一位简历造假的程序员

最新试题

37. 输出是什么?
const numbers = [1, 2, 3]
numbers[10] = 11
console.log(numbers)
  • A: [1, 2, 3, 7 x null, 11]

  • B: [1, 2, 3, 11]

  • C: [1, 2, 3, 7 x empty, 11]

  • D: SyntaxError

答案: C

当你为数组设置超过数组长度的值的时候, javascript 会创建名为 "empty slots" 的东西。它们的值实际上是 undefined。你会看到以下场景:

[1, 2, 3, 7 x empty, 11]

这取决于你的运行环境(每个浏览器,以及 node 环境,都有可能不同)


38. 输出是什么?
(() => {
  let x, y
  try {
    throw new Error()
  } catch (x) {
    (x = 1), (y = 2)
    console.log(x)
  }
  console.log(x)
  console.log(y)
})()
  • A: 1 undefined 2

  • B: undefined undefined undefined

  • C: 1 1 2

  • D: 1 undefined undefined

答案: A

catch 代码块接收参数 x。当我们传递参数时,这与之前定义的变量 x 不同 。这个 x 是属于 catch 块级作用域的。

然后,我们将块级作用域中的变量赋值为 1,同时也设置了变量 y 的值。现在,我们打印块级作用域中的变量 x,值为 1

catch 块之外的变量 x 的值仍为 undefinedy 的值为 2。当我们在 catch 块之外执行 console.log(x) 时,返回 undefinedy 返回 2


39. JavaScript 中的一切都是?
  • A: 基本类型与对象

  • B: 函数与对象

  • C: 只有对象

  • D: 数字与对象

答案: A

JavaScript 只有基本类型和对象。

基本类型包括 boolean, null, undefined, bigint, number, string, symbol


40. 输出是什么?
[[0, 1], [2, 3]].reduce(
  (acc, cur) => {
    return acc.concat(cur)
  },
  [1, 2]
)
  • A: [0, 1, 2, 3, 1, 2]

  • B: [6, 1, 2]

  • C: [1, 2, 0, 1, 2, 3]

  • D: [1, 2, 6]

答案: C

[1, 2]是初始值。初始值将会作为首次调用时第一个参数 acc 的值。在第一次执行时, acc 的值是 [1, 2]cur 的值是 [0, 1]。合并它们,结果为 [1, 2, 0, 1]。第二次执行, acc 的值是 [1, 2, 0, 1]cur 的值是 [2, 3]。合并它们,最终结果为 [1, 2, 0, 1, 2, 3]


41. 输出是什么?
!!null
!!''
!!1
  • A: false true false

  • B: false false true

  • C: false true true

  • D: true true false

答案: B

null 是 falsy。!null 的值是 true!true 的值是 false

"" 是 falsy。!"" 的值是 true。 !true 的值是 false

1 是 truthy。!1 的值是 false!false 的值是 true


42. setInterval 方法的返回值是什么?
setInterval(() => console.log('Hi'), 1000)
  • A: 一个唯一的id

  • B: 该方法指定的毫秒数

  • C: 传递的函数

  • D: undefined

答案: A

setInterval 返回一个唯一的 id。此 id 可被用于 clearInterval 函数来取消定时。


好了,以上就是本周的汇总,以后我们每周会汇总一次,相信你会从中找到你喜欢的内容,最后,记得点个在看,转发文章,关注一下我哦。

觉得本文对你有帮助?请分享给更多人

推荐关注「前端开发博客」,提升前端技能

如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~

有用的话,点个“在看”,支持我们

以上是关于一周热文和进阶面试题 #6的主要内容,如果未能解决你的问题,请参考以下文章

一周热文和最新 JS 进阶面试题 #4

一周热文和最新 JS 进阶六题附答案 #4

Java进阶之光!2021必看-Java高级面试题总结

一周热招 | 机器学习/深度学习专场-上海/北京

AI一周热闻:微软收购GitHub;谷歌放弃续签Maven计划;英伟达发布首款机器人AI芯片Jetson Xavier

Spring Boot进阶:原理实战与面试题分析读后感