数据结构与算法
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)
文章目录
一、前言
在应用uni-app
跨平台技术栈进行app开发过程中,uni-app
官网支持两种页面设计方案:vue
与nvue
,不少同学在应用过程中,会搞不清楚两者的区别,而不知如何选择,甚至可能产生错误的应用方式。
二、选择方案
uni-app
App 端内置了一个基于 weex
改进的原生渲染引擎,提供了原生渲染能力。
在 App 端,如果使用 vue
页面,则使用 webview
渲染;如果使用 nvue
页面(native vue
的缩写),则使用原生渲染。一个 App 中可以同时使用两种页面,比如首页使用 nvue
,二级页使用 vue
页面。
注意⚠️:
- 虽然
nvue
也可以多端编译,输出 H5 和小程序,但nvue
的css
写法受限,所以如果你不开发 App,那么不需要使用nvue
。 nvue
页面控制显隐只可以使用v-if
不可以使用v-show
。
2.1 CSS注意事项
nvue
的css
仅支持flex
布局,是webview css
语法的子集。这是因为操作系统原生排版不支持非flex
之外的web
布局。当然,flex
足以排布出各种页面,只是写法需要适应。有关APP中flex
布局用法详参《ReactNative进阶(四十四):Mobile App 适配性优化》《Vue进阶(幺柒幺):前端用户体验提升(五)Flex实现弹性布局》。- 注意⚠️:文档中未说明的
flexbox
属性均不支持:如order、flex-grow 、flex-shrink 、 flex-basis、align-content、align-self
等。在nvue
中,Flexbox
是默认且唯一的布局模型,所以不需要手动为元素添加display: flex;
属性。 class
进行绑定时只支持数组语法。- 不支持媒体查询;
- 不能在
style
中引入字体文件; - 不能使用百分比布局,如
width:100%;
- 不支持在css里写背景图
background-image
,但可以使用image
组件和层级来实现类似web中的背景效果。因为原生开发本身也没有web这种背景图概念。 - 使用
image
标签,支持使用base64
,不支持svg
格式图片。 nvue
的各组件在安卓端默认是透明的,如果不设置background-color
,可能会导致出现重影的问题;- 文字内容,必须只能在
text
组件下,text
组件不能换行写内容,否则会出现无法去除的周边空白; - 只有
text
标签可以设置字体大小,字体颜色。
三、快速上手
3.1 新建 nvue 页面
在 HBuilderX 的 uni-app
项目中,新建页面,弹出界面右上角可以选择是建立vue
页面还是nvue
页面,或者 2 个同时建。
不管是 vue
页面还是 nvue
页面,都需要在pages.json
中进行路由注册。在 HBuilderX 中新建页面是会自动注册的,如果使用其他编辑器,则需要自行在 pages.json
里手工注册。
如果一个页面路由下同时有 vue
页面和 nvue
页面,即出现同名的 vue
和 nvue
文件。那么在 App 端,会仅使用 nvue
页面,同名的 vue
文件将不会被编译到 App 端。而在非 App 端,会优先使用 vue
页面。
如果不同名,只有 nvue
页面,则在非 app 端,只有 uni-app 编译模式的 nvue
文件才会编译。
3.2 开发 nvue 页面
nvue
页面结构同 vue
, 由 template
、style
、script
构成。
- template: 模板写法、数据绑定同 vue。
- style:由于采用原生渲染,并非所有浏览器的 css 均支持,布局模型只支持 flex 布局,虽然不会造成某些界面布局无法实现,但写法要注意。详见:样式
- script:写法同 vue,并支持 3 种 API:
3.3 调试 nvue 页面
HBuilderX 内置了 weex
调试工具的强化版,包括审查界面元素、看 log、debug 打断点,详见 app-debug。
3.4 应用场景
在平时开发过程中,经常会遇到各种层级覆盖和原生界面自定义的问题:
- 覆盖原生导航栏、tabbar 的弹出层组件。比如侧滑菜单盖不住地图、视频、原生导航栏,比如 popup盖不住tabbar。
- 弹出层内部元素可滚动,
- 在地图、视频等组件上的添加复杂覆盖组件:比如直播视频上覆盖滚动的聊天记录。
最后
小编的一位同事在校期间连续三年参加ACM-ICPC竞赛。从参赛开始,原计划每天刷一道算法题,实际上每天有时候不止一题,一年最终完成了 600+:
凭借三年刷题经验,他在校招中很快拿到了各大公司的offer。
入职前,他把他的刷题经验总结成1121页PDF书籍,作为礼物赠送给他的学弟学妹,希望同学们都能在最短时间内掌握校招常见的算法及解题思路。
整本书,我仔细看了一遍,作者非常细心地将常见核心算法题和汇总题拆分为4个章节。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。
ac0)**
而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。