阅读 234

前端溜圈群技术小题复盘-第一周

前端溜圈群技术小题复盘-第一周

每周工作日会出一道小题,一周五题,周六分享会复盘结束后本人会将问题与答案整理出来~方便群内小伙伴复习。

这里只整理简短的解析与答案(但是我会在每周复盘中详细讲解以及扩展),具体内容不懂的话可以谷歌或者私我,当然还是建议大家多多思考多多讨论。

每天第一名正确回答并解释完整的同学可以获得群主的奖励红包

第一天

  • setTimeout 中调用的代码的 this 在非严格模式下会指向 window
  • 全局 let 声明的变量不在 window 上,而是在叫做 script 的全局域上

答案:undefined

第二天

  1. 直接访问 Foo 上的 log 方法,打印 2
  2. 虽然有函数和变量提升,但是最后被赋值语句覆盖,打印 4
  3. Foo() 执行,内部声明了 全局的 foo,覆盖;返回 this (即window),调用 window 上的 log,打印 1
  4. 调用 window 上的 log,打印 1
  5. new 优先级较高,返回一个 空对象,上面绑定了 Foo 的原型链,在对象上没有找到 log 属性,去原型链上找,打印 3

答案:2 4 1 1 3

第三天

  • If 中的求值使用的是 eval,传入非字符串时不会对其进行执行而是直接返回,所以两个 If 都返回了这个函数且未声明,为 true
  • 因为函数未被执行,所以一个为 number,另一个为 undefined,然后拼成字符串
  • typeof 未声明变量 为 undefined

答案:1number,1undefined

ECMA标准:If statementtypeof

第四天

CSS

很明显使用计数器较好

ul {
  counter-reset: counter;
}

li::before {
  counter-increment: counter;
  content: counters(counter, '.') ' ';
}
复制代码
  • counter-reset:初始化计数器,默认从 0 开始
  • counter-increment:用于可计数的元素中并指明计数器,默认变化值为 1
  • counters(counter, string):第一个参数为计数器名称,第二个参数为计数器后字符串(子序号的链接字符串)

详细使用建议自行搜索。

JS

  • process.nextTick 属于 idle 观察者,setImmediate 属于 check 观察者,每次循环中,idle > check
  • process.nextTick 回调函数保存在数组中,setImmediate 保存在链表中
  • process.next 每次循环执行全部的回调函数,setImmediate 只执行一个回调函数

答案:

pass nextTick1 nextTick2 setImmediate1 nextTick3 setImmediate2

但是好像改了,setImmediate现在全部取出了

第五天

  • 若对象上存在属性,则直接使用
  • 若对象上不存在属性,则查找原型链上的原型
  • 原型复用

答案:

1, [1,2,1], 8 11, [1, 2, 1], 8 12, [1,2,1], 8

1, [1,2,1],8 4, [1,2,1,11,12],5 5, [1,2,1,11,12], 5

广告

每天群内会发一道技术小题,每周末会有视频技术分享和前端题复盘。

只面向前端大学生,希望积极活跃的你进群聊生活聊技术聊Idea。

欢迎大学生前端进群交流呀 ~ 小群人数不多,进群就是朋友,以后规模也会限制在50人左右~

关注下面的标签,发现更多相似文章
评论