2024年最新前端面试知识点整理——项目整理_前端面试项目介绍,面试技巧的书籍

跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。

也许是互联网未来10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。

面试准备

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

面试准备根据每个人掌握的知识不同,准备的时间也不一样。现在对于前端岗位,以前也许不是很重视算法这块,但是现在很多公司也都会考。建议大家平时有空的时候多刷刷leetcode。算法的准备时间比较长,是一个长期的过程。需要在掌握了大部分前端基础知识的情况下,再有针对性的去复习算法。面试的时候算法能做出来肯定加分,但做不出来也不会一票否决,面试官也会给你提供一些思路。

一、华工线上黑市(安卓)

1.MVP架构方面 先介绍整个架构是怎样的,并与传统的mvp架构的区别
后来经过两次变革
(1)抽出了base层,包括baseactivity(定义一些通用的view接口的函数,和一些绑定样式、初始化的函数)和basepresenter(定义一些绑定和解绑view的函数)
(2)把model层进行了整合,将所有网络请求封装在一个类当中,对于上层就像在调用api获取数据一样
首先定义了一个okhttpclientutil的类,类里面封装了相应的post和get等请求,然后我们可以直接在blackmarketapi里面,在调用登录、显示商品、上传图片、获得排序等等时来调用这些封装好的请求方法,把相应的参数和回调函数传进去,非常方便的进行网络请求。

2.xml样式
他会有一些线性布局linearlayout(水平、垂直方向上线性排列)、相对布局relativelayout(随意一些)、framelayout(所有控件默认摆放在布局的左上角)、百分比布局,还有一些listview、recyclerview的滚动控件

实现两栏布局的话,可以考虑使用linearlayout布局来划分怎么排列,使用一些例如android:layout_weight=“1”,来划分剩余空间

二、二手闲置商场&健身管理系统(小程序)

1.页面的一个结构:(全局大体也差不多)
js:Page里面保存了一些数据,还有调用一些页面的生命周期函数,以及自己定义的函数
json:页面的json用来注册一些组件,定义当前页面的标题、窗口的一些其他属性
wxml:整体和html很像,但是它是经过了微信的封装,例如块级元素在小程序中是用view标签来展示,行内元素使用text标签来展示。在里面可以绑定一些事件函数,也有一些wx:if、wx:for的一些指令,还可以使用mustache语法
wxss:和css很像,经常会用单位rpx

2.微信对小程序进行了怎样的封装

3.小程序的双线程模型
渲染层:wxml和wxss运行在渲染层,渲染层使用webview线程渲染(有多个页面则用多个webview渲染)
逻辑层:js脚本运行于逻辑层,逻辑层使用jscore运行js脚本
这两个线程都会经由微信客户端(native)进行中转交互

界面渲染整体流程:
(1)在渲染层,宿主环境会把wxml转化成对应的js对象
(2)将js对象再次转成真实的dom树,交由渲染层线程渲染
(3)数据变化时,逻辑层提供最新的变化数据,通过setData方法从逻辑层传递到Native,再转发到渲染层,js对象发生变化比较进行diff算法对比
(4)将最新变化的内容反映到真实的dom树中,更新ui

虚拟 DOM 机制 virtual Dom
用JS对象模拟DOM树 -> 比较两个DOM树 -> 比较两个DOM树的差异 -> 把差异应用到真正的DOM树上

4.小程序为什么要采用双线程模型
(1)为了管控安全,不允许操作dom,不希望能够获取到用户的隐私数据
(2)限制一些api的掉用

5.小程序的组件化开发
尽可能地将页面拆分成一个个小的、可复用的组件

自定义组件的步骤:
(1)创建:在组件的json文件里面进行组件声明(“component”: true)、在wxml中编写组件模板、在wxss中编写样式、在js文件中定义数据或其他相关逻辑
(2)使用:在使用的页面的json中注册(usingComponent)、在wxml中直接使用

6.小程序的基础库
小程序的基础库是JavaScript编写的,它可以被注入到渲染层和逻辑层运行。主要用于:
在渲染层,提供各类组件来组件页面的元素
在逻辑层,提供各种API来处理各种元素。
处理数据绑定、组件系统、事件系统、通信系统等一系列框架逻辑

小程序的渲染层和逻辑层是两个线程管理,两个线程各自注入了基础库。
小程序的基础库不会打包在小程序的代码中,它会被提前内置在微信客户端。这样可以:
降低业务小程序的代码包大小
可以单独修复基础库中的Bug,无需修改到业务小程序的代码包

参考:微信小程序底层原理

7.使用了小程序云开发里面的数据库 以及 微信的代码管理来进行多人协作开发

8.小程序的生命周期
页面的生命周期
在这里插入图片描述
有渲染层(view thread)和逻辑层(app service)两个线程同时执行,逻辑层会加载page,并执行onload和onshow,进入阻塞,等待请求。渲染层要先进行初始化,请求一些逻辑层的数据(mustache里面的数据),准备渲染的时候也会通知逻辑层。逻辑层知道渲染层开始渲染时,会执行onready。页面渲染完成。

当数据改变时,逻辑层会把新的数据发送给渲染层,重新渲染。

onhide:退到后台
onshow:回到前台
onunload:page退出

9.MVVM架构

总结

前端资料汇总

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 框架原理真的深入某一部分具体的代码和实现方式时,要多注意到细节,不要只能写出一个框架。

  • 算法方面很薄弱的,最好多刷一刷,不然影响你的工资和成功率😯

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!
    喜欢这篇文章文章的小伙伴们点赞+转发支持,你们的支持是我最大的动力!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值