# 移动端相关面试题

  • 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

最后更新时间: 9/18/2021, 10:23:54 AM