# 移动端相关面试题
RN/Weex 的实现思路,与 webview+bridge 相比优缺点是什么?
小程序的架构是怎么样的,与传统的 webview+bridge 区别在哪里?
bridge(web 和 native 通信) 是怎么实现的
flutter 跟 RN 的区别
HTML5 的新特性了解和使用情况
iOS 和 Android 的 H5 开发有哪些异同点
遇到过的兼容性问题以及如何解决
各平台的调试工具和方法
实现一个水平布局有多少种方法?如何实现?
考察整体了解水平,传统 float 布局和 flex 的了解情况,以及一些特殊布局如 inline-block position 等 重点考察 flex 布局的掌握程度,可以了解实现细节,如 flex-grow 等属性含义
实现一个简单的(水平移动)动画有多少种方法?如何实现?
- 动画种类:CSS3 动画、SVG、Canvas、WebGL 等,说明大概的特点和区别
CSS3 动画又分为 JS 计时器动画、transition 动画、Animation 动画,说明他们之间的差别
viewport 的含义
- 考察 viewport 里各项属性的含义,对页面显示的作用
0.5px 高清解决方案
- viewport、devicePixelRatio、rem 的配合关系,对 rem 的理解
- 0.5px 的新特性支持(iOS 9+)
- 图片高清解决方案(2x)
实现一个 slider
- 整体实现思路是否正确
- touch 事件的使用,是否能说出三个事件,事件内部对象产生的 x, y 位置属性,以及如何利用他们产生交互动作
- 是否可以以手势 (gesture) 方式实现,手势与 touch 事件操作的异同
如何实现 pulldown 顶部下拉
- 考察 touch 事件的使用,同上
- 考察 pulldown 下拉与原生的 scroll 事件的关系如何区分,页面的正常 scroll 的可用性如何保障。考察是否需要 iscroll 的滚动做辅助,必要性如何
- 考察下拉过程如何实现(阈值、回弹等)
如何实现一个无尽列表
考察 touch 事件的使用,同上 考察是否有 scroll 原生事件与 touch 事件两者应用利弊的思考 考察实现细节,触发阈值和状态变化等是否合理 考察懒加载的几种模式:图片懒加载、Dom 懒加载等 考察如何在“无尽”的情况下避免内存泄露的思考
# 性能优化(开放)
考察移动端性能优化与传统 PC 优化的异同,有哪些需要额外考虑 具体问题可以参考 性能 章节
# hybrid
基础考察详见 hybrid 章节 考察常见的移动端 hybrid 方法,如 pushwindow、location 等 考察离线包方案的实践和理解
iOS 开发中如何实现 JS 与 Native 的交互方式
# 新技术的了解情况
HTML5 和 CSS3 新的标准 ES6、7 掌握程度 PWA、Service Worker