前端溜圈群技术小题复盘-第一周
每周工作日会出一道小题,一周五题,周六分享会复盘结束后本人会将问题与答案整理出来~方便群内小伙伴复习。
这里只整理简短的解析与答案(但是我会在每周复盘中详细讲解以及扩展),具体内容不懂的话可以谷歌或者私我,当然还是建议大家多多思考多多讨论。
每天第一名正确回答并解释完整的同学可以获得群主的奖励红包
第一天
- setTimeout 中调用的代码的 this 在非严格模式下会指向 window
- 全局 let 声明的变量不在 window 上,而是在叫做 script 的全局域上
答案:undefined
第二天
- 直接访问 Foo 上的 log 方法,打印 2
- 虽然有函数和变量提升,但是最后被赋值语句覆盖,打印 4
- Foo() 执行,内部声明了 全局的 foo,覆盖;返回 this (即window),调用 window 上的 log,打印 1
- 调用 window 上的 log,打印 1
- new 优先级较高,返回一个 空对象,上面绑定了 Foo 的原型链,在对象上没有找到 log 属性,去原型链上找,打印 3
答案:2 4 1 1 3
第三天
- If 中的求值使用的是 eval,传入非字符串时不会对其进行执行而是直接返回,所以两个 If 都返回了这个函数且未声明,为 true
- 因为函数未被执行,所以一个为 number,另一个为 undefined,然后拼成字符串
- typeof 未声明变量 为 undefined
答案:1number,1undefined
ECMA标准:If statement,typeof
第四天
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人左右~