2019 微信小程序面试题

微信小程序相关的

  • 微信小程序组件的生命周期?
    答:生命周期函数-onLoad: 页面加载
    一个页面只会调用一次,可以在 onLoad 中获取打开当前页面所调用的 query 参数。
    onShow: 页面显示
    每次打开页面都会调用一次。
    onReady: 页面初次渲染完成
    一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
    onHide: 页面隐藏
    当navigateTo或底部tab切换时调用。
    onUnload: 页面卸载

  • 简单描述下微信小程序的相关文件类型?
    答:微信小程序项目结构主要有四个文件类型,如下
    .json 后缀的 JSON 配置文件
    .wxml 后缀的 WXML 模板文件
    .wxss 后缀的 WXSS 样式文件
    .js 后缀的 JS 脚本逻辑文件

  • app.json 是对当前小程序的全局配置,讲述三个配置各个项的含义?
    答:pages字段 —— 用于描述当前小程序所有页面路径,这是为了让微信客户端知道当前你的小程序页面定义在哪个目录。
    window字段 —— 小程序所有页面的顶部背景颜色,文字颜色定义在这里的
    tab字段—小程序全局顶部或底部tab

  • 小程序的wxss和css有哪些不一样的地方?
    答:新像素单位 rpx样式可直接使用import导入

  • 小程序有哪些参数传值的方法?

  1. 给HTML元素添加data-属性来传递我们需要的值,然后通过e.currentTarget.dataset或onload的param参数获取。但data-名称不能有大写字母和不可以存放对象;
  2. 设置id 的方法标识来传值通过e.currentTarget.id获取设置的id的值,然后通过设置全局对象的方式来传递数值;
  3. 在navigator中添加参数传值。
  • 如何提高微信小程序的应用速度?
    一、提高页面加载速度
    二、用户行为预测
    三、减少默认data的大小
    四、组件化方案

  • 微信小程序与H5的区别?

  1. 第一条是运行环境的不同
    传统的HTML5的运行环境是浏览器,包括webview,而微信小程序的运行环境并非完整的浏览器,是微信开发团队基于浏览器内核完全重构的一个内置解析器,针对小程序专门做了优化,配合自己定义的开发语言标准,提升了小程序的性能。
  2. 第二条是开发成本的不同
    只在微信中运行,所以不用再去顾虑浏览器兼容性,不用担心生产环境中出现不可预料的奇妙BUG
  3. 第三条是获取系统级权限的不同
    接系统级权限都可以和微信小程序无缝衔
  • 小程序获取场景值的方法?
	let options = wx.getLanchOptionsSync()
  • 小程序onPageScroll方法的使用注意什么?
    答:由于此方法调用频繁,不需要时,可以去掉,不要保留空方法,并且使用onPageScroll时,尽量避免使用setData(),尽量减少setData()的使用频次。

  • 小程序视图渲染结束回调?
    答:使用setData(data, callback),在callback回调方法中添加后续操作代码

  • 小程序同步API和异步API使用时注意事项?
    答:像wx.setStorageSync这种以Sync结尾的API为同步API,使用时使用try-catch来查看异常,如果判定API为异步,可以在其回调方法success、fail、complete中进行下一步操作。

  • 小程序对wx:if 和 hidden使用的理解?
    wx:if 有更高的切换消耗。
    hidden 有更高的初始渲染消耗。
    因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。

  • 小程序简单介绍下三种事件对象的属性列表?

  1. 基础事件(BaseEvent)
    type: 事件类型
    timeStamp:事件生成时的时间戳
    target:触发事件的组件的属性值集合
    currentTarget:当前组件的一些属性集合
  2. 自定义事件(CustomEvent)
    detail
  3. 触摸事件(TouchEvent)
    touches
    changedTouches
  • 小程序的双向绑定和vue的异同?
    答:大体相同,但小程序直接this.data的属性是不可以同步到视图的,必须调用this.setData()方法!

  • 小程序页面间有哪些传递数据的方法?

    1. 使用全局变量实现数据传递
    2. 页面跳转或重定向时,使用url带参数传递数据
    3. 使用组件模板 template传递参数
    4. 使用数据库传递数据
  • 小程序wxml与标准的html的异同?
    答:都是用来描述页面的结构;都由标签、属性等构成;标签名字不一样,且小程序标签更少,单一标签更多;多了一些 wx:if 这样的属性以及 {{ }} 这样的表达式、WXML仅能在微信小程序开发者工具中预览,而HTML可以在浏览器内预览;组件封装不同, WXML对组件进行了重新封装,
    小程序运行在JS Core内,没有DOM树和window对象,小程序中无法使用window对象和document对象。

  • 小程序WXSS和CSS的异同?
    答:都是用来描述页面的样子;
    WXSS 具有 CSS 大部分的特性,也做了一些扩充和修改;
    WXSS新增了尺寸单位,WXSS 在底层支持新的尺寸单位 rpx;
    WXSS 仅支持部分 CSS 选择器;
    WXSS 提供全局样式与局部样式

你可能感兴趣的:(微信小程序,前端面试题)