觉晓科技——前端笔试(2022.4.6)

本文记录了觉晓科技公司的前端笔试内容,涵盖了选择题(如JavaScript继承、CSS属性的区别)、简述题(sessionStorage、localStorage与cookie的区别、Vue组件通信方式)以及编程题(实现驼峰命名及发布订阅者模式)。还探讨了Webpack的核心概念和编译过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

觉晓科技公司前端笔试记录

时间:70分钟,题型:15道选择(有多选单选)、3道简述题、两道编程题


一、选择题

  1. 比较简单,是和前端知识相关
    如:js实现继承的方法、display:none和visibility:hidden的区别、元素选择符的权重等。

二、简述题

  1. sessionStorage、localStorage和cookie之间的区别。
    共同点:都是保存在浏览器端、且同源的
    区别:
    (1)cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
    (2)存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
    (3)数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭 。
    (4)作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。
    (5)web Storage支持事件通知机制,可以将数据更新的通知发送给监听者。
    (6)web Storage的api接口使用更方便。
  2. Vue里实现组件通信的方式有哪些。
    (1)props / $emit:父组件A通过props的方式向子组件B传递,B to A 通过在 B 组件中 $emit, A 组件中 v-on 的方式实现。
    (2)$emit / $on:这种方法通过一个空的Vue实例作为中央事件总线(事件中心),用它来触发事件和监听事件,巧妙而轻量地实现了任何组件间的通信,包括父子、兄弟、跨级。当我们的项目比较大时,可以选择更好的状态管理解决方案vuex。
    (3)vuex。
    (4)$attrs /$listeners。
    (5)provide/inject。
    (6)$parent / $children&ref。
    总结
    常见使用场景可以分为三类:
    父子通信: 父向子传递数据是通过 props,子向父是通过 events( $emit);通过父链 / 子链也可以通信( $parent / $children);ref 也可以访问组件实例;provide / inject API;attrs / attrs/attrs/listeners。
    兄弟通信: Bus;Vuex。
    跨级通信: Bus;Vuex;provide/inject API、attrs /attrs/attrs/listeners。
  3. 描述webpack的核心概念以及编译过程。
    (1)六个核心概念:
    Entry,入口,这是Webpack执行构建的第一步,可理解为输入。
    Module,模块,在Webpack中一切皆模块,一个模块即为一个文件。 Webpack会从Entry开始递归找出所有的依赖模块。
    Chunk,代码块,一个Chunk由多个模块组合而成,它用于代码合并与分割。
    Loader,模块转换器,用于将模块的原内容按照需求转换成新内容。
    Plugin,扩展插件,在Webpack构建过程的特定时机注入扩展逻辑,用来改变或优化构建结果。
    Output,输出结果,源码在Webpack中经过一系列处理后而得出的最终结果。
    (2)Webpack构建流程:Webpack在启动后,会从Entry开始,递归解析Entry依赖的所有Module,每找到一个Module,就会根据Module.rules里配置的Loader规则进行相应的转换处理,对Module进行转换后,再解析出当前Module依赖的Module,这些Module会以Entry为单位进行分组,即为一个Chunk。因此一个Chunk,就是一个Entry及其所有依赖的Module合并的结果。最后Webpack会将所有的Chunk转换成文件输出Output。在整个构建流程中,Webpack会在恰当的时机执行Plugin里定义的逻辑,从而完成Plugin插件的优化任务。

三、编程题

  1. 实现一个函数,把一个由-或_或@连接的变量词转换成驼峰形式。
//由-或_或@连接的变量词转换成驼峰形式
function trans(msg){
   
    let reg = msg.replaceAll('_','-');
    reg = reg
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值