草庐IT

微信小程序复习题

Violent-Ayang 2024-01-08 原文

文章目录

填空题

  1. 微信小程序创始人是 张小龙 ,英文缩写 Mini Program
  2. 小程序是一种无需下载和无需安装即可使用的应用,它实现了应用“ 触手可得 ”的梦想,也体现了“ 用完即走 ”的理念
  3. 张小龙说过,小程序会取代市场上 80% 的APP
  4. 高频率、高时长 的服务并不太适合进驻微信小程序,比如直播、游戏、视频等
  5. 调试 Console 面板是后端控制台,在小程序编译或运行有误时会进行warning或e rror的信息提示;
  6. Sources 面板显示编译后的脚本文件;
  7. AppData 用于显示当前项目运行时小程序具体数据,实时地反映项目数据情况;
  8. Wxml 面板用于查看wxml 转化后的真实的页面结构以及属性;Storage 面板用于显示使用 wx.setStorage 或者 wx.setStorageSync 后的数据存储情况;
  9. Network 面板用于观察和显示 request 和 socket 的请求情况
  10. 创建page时,可以在 app.json 文件中 属性里添加对应的页面路径
  11. app.json 是小程序全局配置文件, app.js 是小程序主体逻辑,app.wxss 是全局样式表
  12. 一个page通常包含四种文件,js 是页面逻辑文件,wxml 是页面结构文件,json 是页面配置文件,wxss 是页面样式表文件
  13. entryPagePath 用于指定小程序的默认启动路径(首页),如果不填,将默认为 pages列表第一项
  14. 生命周期函数 onLoad 在页面创建时执行的第一个函数, onUnload 函数在页面销毁时执行
  15. 生命周期函数 onShow 在页面出现在前台时执行,生命周期函数 onHide 在页面从前台变为后台时执行
  16. 微信现已开放小程序内搜索,开发者可以通过 sitemap.json 配置
  17. 通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面,最少 2 个,最多 5
  18. 使用 wx.setStorage 设置本地缓存时,单个 key 允许存储的最大数据长度为 1 MB,所有数据存储上限为 10 MB
  19. Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性,通过“ display:flex ”指定为Flex布局
  20. swiper 是用于显示轮播图的滑块视图容器,其中只可放置 < swiper-item > 组件,否则会导致未定义的行为
  21. WXML 提供两种文件引用方式,即 importinclude
  22. 微信小程序事件绑定的两种方法: bindcatch
  23. 微信小程序事件分为 冒泡事件非冒泡事件
  24. 调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,页面栈最多 10
  25. 开发者可以通过 app.json 文件里的字段 permission 设置小程序接口权限
  26. 通过 networkTimeout 可配置各类网络请求的超时时间,单位均为 毫秒

选择题

  1. 在调用wx.getLocation获取位置时,需要通过app.json里的字段permission设置以下小程序接口权限: B
    A.scope.userInfo
    B.scope.userLocation
    C.scope.address
    D.scope.userLocationBackground

  2. 以下哪种不属于networkTimeout可配置项 B
    A、request、B、 Socket、C 、uploadFile、D、downloadFile

  3. WXML列表渲染wx:for中,可以通过以下关键字指定循环变量:B
    A、wx:item
    B、wx:for-item
    C、wx:index
    D、wx:for-index

  4. 样式定义的三种方式,1-类class,2-内联样式style,3-组件名,以下排序正确的:A
    A、Style>class>组件名
    B、Style>组件名>class
    C、组件名>class>Style>
    D、class>Style>组件名

  5. 以下哪种不属于小程序回调函数 D
    A、success、B fail、C complete、D error

  6. 页面启动时页面生命周期函数执行顺序:B
    A、onShow->onLoad->onReady
    B、onLoad -> onReady -> onShow
    C、onLoad ->onShow ->onReady
    D、onShow -> onReady -> onLoad

  7. 以下哪个不是正确的小程序入口 B
    A、微信对话分享进入
    B、点击url地址进入
    C、扫码进入
    D、附近小程序

  8. 在小程序的其他JS文件中均可以使用全局的函数获取小程序实例 A
    A、getApp()
    B、getGlobalApp()
    C、App()
    D、new APP()

  9. 以下哪个不是正确的小程序入口 B
    A、微信对话分享进入
    B、点击url地址进入
    C、扫码进入
    D、附近小程序

  10. 小程序对于服务器返回值使用的是何种编码方式? C
    A、GB2312
    B、GBK
    C、UTF-8
    D、Unicode

  11. 小程序网络API在发起网络请求时使用何种格式的文本进行数据交换? B
    A、XML
    B、JSON
    C、TXT
    D、PHP

  12. 以下哪个域名符合小程序网络请求的域名配置要求? C
    A、https://localhost
    B、http://www.test.com
    C、https://www.test.com
    D、https://210.45.192.101

  13. 已知网络请求时url参数值是https://www.test.com, data参数值是key:‘123456’,以及location:‘shanghai’,那么用浏览器模拟测试时地址栏需要输入以下何种内容? A
    A、https://www.test.com?key=123456&location=shanghai
    B、https://www.test.com?key=123456,location=shanghai
    C、https://www.test.com/key=123456&location=shanghai
    D、https://www.test.com/key=123456,location=shanghai

  14. 在wx.request中的success称为回调函数。关于回调函数,以下说法不正确的是? B
    A、当接口调用失败时,进入fail回调函数
    B、只有statusCode为200时,才进入success回调函数
    C、只要成功接收到服务器返回,无论statusCode是多少,都会进入success回调函数。
    D、无论接口调用成功与否,都可以进入complete回调函数

  15. 视频组件的哪个属性可以用于自动播放? C
    A、controls
    B、loop
    C、autoplay
    D、enable-danmu

  16. 如何指定视频播放的来源? C
    A、视频组件的source属性值
    B、视频组件的id属性值
    C、视频组件的src属性值
    D、视频组件的name属性值

  17. InnerAudioContext 实例,可通过 wx.createInnerAudioContext 接口获取,以下哪个方法可以实现跳转到指定位置播放音乐 D
    InnerAudioContext.play()
    InnerAudioContext.pause()
    InnerAudioContext.stop()
    InnerAudioContext.seek(position)

  18. 在数据API中,wx.getStorageSync的后缀Sync代表什么含义? A
    A、同步的
    B、异步的
    C、无意义
    D、都不正确

  19. 以下哪个可以用于清空全部数据? D
    A、wx.deleteStorage
    B、wx.flushStorage
    C、wx.removeStorage
    D、wx.clearStorage

  20. 小程序使用以下哪种方法获取当前地理位置信息? A
    A、wx.getLocation
    B、wx.gainLocation
    C、wx.catchLocation
    D、wx.chooseLocation

  21. 以下哪个方法用于打开地图查看指定的位置? A
    A、wx.openLocation
    B、wx.checkLocation
    C、wx.readLocation
    D、wx.findLocation

  22. 以下哪个方法用于获取系统剪贴板的内容? B
    A、wx.setClipboardData(OBJECT)
    B、wx.getClipboardData(OBJECT)
    C、wx.gainClipboardData(OBJECT)
    D、wx.captureClipboardData(OBJECT)

  23. 小程序使用wx.getNetworkType(OBJECT)获取网络类型,以下哪个不属于获取的网络类型有效值? A
    A、null
    B、none
    C、wifi
    D、5g

  24. 以下哪个方法可以用于长时间监听罗盘数据? C
    A、wx.listenCompass(OBJECT)
    B、wx.startCompass(OBJECT)
    C、wx.onCompassChange(CALLBACK)
    D、wx.stopCompass(OBJECT)

判断题

  1. 微信小程序能够取代市场上全部的APP
  2. wx.clearStorage() 可以同步清理本地数据缓存
  3. WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方采用import调用
  4. Import和Include均可以引入模板
  5. wx.setStorageSync(KEY,DATA)将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口
  6. 页面之间可以使用URL进行参数传递,参数与路径之间使用 ? 分隔,参数键与参数值用 = 相连,不同参数用 & 分隔;如 'path?key=value&key2=value2
  7. template组件可以绑定事件
  8. wx.navigateTo()可以跳到 tabbar 页面
  9. bind 事件绑定会阻止冒泡事件向上冒泡
  10. 调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会
  11. App() 必须在 app.js 中调用,必须调用且只能调用一次,不然会出现无法预期的后果
  12. 组件节点中可以附加一些自定义数据,这些自定义数据以 data- 开头,多个单词由连字符-连接, 在js中使用dataset获得附加属性值
  13. 调用 redirectTo 跳转时,会关闭当前页面
  14. 调用wx.switchTab跳转到 tabBar 页面时,路径可以带参数
  15. touchstart、touchmove、touchcancel、touchend、tap都属于冒泡事件

分析题(20)

分析代码显示效果

<view class="flex-wrp" style="flex-direction:column;">
  <view class="flex-item bg_A">A</view>
  <view class="flex-item bg_B">B</view>
  <view class="flex-item bg_C">C</view>
</view>
.flex-wrp{
  margin-top: 60rpx;
  display:flex;
  flex-direction:row
  }
  .flex-item{
  width: 200rpx;
  height: 300rpx;
  font-size: 26rpx;
  }
  .bg_A{
  background-color: #1AAD19;
  }
  .bg_B{
  background-color: #2782D7;
  }
  .bg_C{
  background-color: #F1F1F1;
  }

<!--index.wxml-->
<view class="container">
  <view id="outer" bindtap="out">
    outer view
    <view id="middle" bindtap="middle">
      middle view
      <view id="inner" bindtap="inner">
        inner view
      </view>
    </view>
  </view>
</view>
Page({
  //事件处理函数
  out: function (e) {
  console.log("--out bindtap click")
  },
  middle: function (e) {
  console.log("--middle bindtap click")
  },
  inner: function (e) {
  console.log("--inner bindtap click")
  }
  })

点击out view打印出⼀条log , --out bindtap click
点击middle view打印出两条log, --middle bindtap click --out bindtap click
点击innew view打印出两条log, --inner bindtap click --middle bindtap click --out bindtap click

冒泡事件的不同绑定方式

页面设计题(40)


需要使用那些组件?

<view class="music-player">
  <view class="mp-btns">
    <view wx:if="{{isplay==false}}" class="mp-cover " bindtap='play'>></view>
    <view wx:if="{{isplay==true}}" class="mp-cover-rotate" bindtap='stop'></view>
  </view>
  <view class="mp-slider">
    <slider value="{{myAudioPos}}" bindchange="hanle_slider_change"></slider>
    <view class="current-time">{{myAudioCurrent}}</view>
    <view class="duration-time">{{myAudioDuration}}</view>
  </view>
</view>

<form bindsubmit="formSubmit" bindreset="formReset">
  <view class="section section_gap">
    <view class="section__title">是否公开信息</view>
    <switch name="isPub" />
  </view>
  <view class="section">
    <view class="section__title">⼿机号</view>
    <input name="phone" placeholder="⼿机号" />
  </view>
  <view class="section">
    <view class="section__title">密码</view>
    <input name="pwd" placeholder="密码" password />
  </view>
  <view class="section section_gap">
    <view class="section__title">性别</view>
    <radio-group name="sex">
      <label>
        <radio value="" checked /></label>
      <label>
        <radio value="" /></label>
    </radio-group>
  </view>
  <view class="btn-area">
    <button formType="submit" type="primary">提交</button>
    <button formType="reset">重置</button>
  </view>
</form>
<view wx:if="{{isSubmit}}">
  {{warn ? warn : "是否公开信息:"+isPub+",⼿机号:"+phone+",密码:"+pwd+",性别:
  "+sex}} </view>
let app = getApp();
Page({
  data: {
    isSubmit: false,
    warn: "",
    phone: "",
    pwd: "",
    isPub: false,
    sex: "男"
  },
  formSubmit: function (e) {
    console.log('form发⽣了submit事件,携带数据为:', e.detail.value);
    let {
      phone,
      pwd,
      isPub,
      sex
    } = e.detail.value;
    this.setData({
      warn: "",
      isSubmit: true,
      phone,
      pwd,
      isPub,
      sex
    })
    if (!phone || !pwd) {
      this.setData({
        warn: "⼿机号或密码为空!",
        isSubmit: true
      })
      return;
    }
  },
  formReset: function () {
    console.log('form发⽣了reset事件')
  }
})
wx.request({
  url: url,
  data: data,
  method: method,
  success: function (res) {},
  fail: function () {},
  complete: function () {
    wx.hideLoading();
  }
})

<template name="postItemTpl">
  <view class="post-container">
    <view class="post-author-date">
      <image src="{{avatar}}" />
      <text>{{date}}</text>
    </view>
    <text class="post-title">{{title}}</text>
    <image class="post-image" src="{{postImg}}" mode="aspectFill" />
    <text class="post-content">{{content}}</text>
  </view>
</template>
<import src="post-item/post-item-tpl.wxml" />
<view>
  <swiper catchtap="onSwiperTap" vertical="{{false}}" indicator-dots="true" autoplay="true" interval="5000" circular="true">
    <swiper-item>
      <image src="/images/post/post-1@text.jpg" data-post-id='3' />
    </swiper-item>
    <swiper-item>
      <image src="/images/post/post-2@text.jpg" data-post-id='4' />
    </swiper-item>
    <swiper-item>
      <image src="/images/post/post-3@text.jpg" data-post-id='5' />
    </swiper-item>
  </swiper>
  <block wx:for="{{postList}}" wx:for-item="item" wx:for-index="idx">
    <view catchtap="onTapToDetail" data-post-id="{{item.postId}}">
      <template is="postItemTpl" data="{{...item}}" />
    </view>
  </block>
</view>
// pages/detail/detail.js
Page({
data: {docId: 0},
onLoad: function (options) {
var docId = options.docId
}
})
onTapToDetail(event) {
var postId = event.currentTarget.dataset.postId;
console.log(postId);
wx.navigateTo({
url: 'post-detail/post-detail?id=' + postId,
})
},
var postList = [
{
date: "Jan 29 2017"
,
title: "记忆⾥的春节"
,
postImg: "/images/post/post-1.jpg"
,
avatar: "/images/avatar/avatar-3.png"
,
content: "年少时,..."
},
{
date: "Jan 9 2017"
,
title: "从童年呼啸⽽过的⽕⻋"
,
postImg: "/images/post/post-5.jpg"
,
avatar: "/images/avatar/avatar-1.png"
,
content: "⼩时候,家的后⾯有⼀条铁路..."
}
]

有关微信小程序复习题的更多相关文章

  1. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  2. 微信小程序通过字典表匹配对应数据 - 2

    前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立

  3. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  4. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  5. Ubuntu20.04系统WineHQ7.0安装微信 - 2

    提供3种Ubuntu系统安装微信的方法,在Ubuntu20.04上验证都ok。1.WineHQ7.0安装微信:ubuntu20.04安装最新版微信--可以支持微信最新版,但是适配的不是特别好;比如WeChartOCR.exe报错。2.原生微信安装:linux系统下的微信安装(ubuntu20.04)--微信适配的最好,反应最快,但是微信版本只到2.1.1,版本太老,很多功能都没有。3.深度deepin-wine6安装微信:ubuntu20.04+系统deepin-wine6安装新版微信--综合比较好,当前个人使用此种方法1个月,微信版本3.4;没什么大问题,尚可。一、WineHQ7.0安装微信

  6. 微信小程序订餐系统 - 2

    对传统的餐饮商家来说,小程序很好地解决了餐厅线下线上连接的问题,在引流获客、节约人力、营销宣传、塑造会员体系、改善消费体验等方面都有很大帮助。小程序点餐可以帮助餐饮企业节省一大把人力开支。一个包含扫码点单、菜品管理、优惠券推送、外卖配送的小程序,商家花几万元就能完成开发测试并投入。商家为什么要开通“扫码点餐”1.解决服务员不够用的问题。2.不怕顾客跑单漏单。3.在微信就能管理菜品、查看营业额。4.订单小票显示顾客桌号和已点菜品。5.可在“附近的小程序”找到您的门店。如今餐饮业常用的三种经营模式:1堂食点单模式客人通过小程序堂食点单。商家可以在微信扫码点餐小程序管理后台根据自己店内情况来设置不同

  7. 最新版人脸识别小程序 图片识别 生成二维码签到 地图上选点进行位置签到 计算签到距离 课程会议活动打卡日常考勤 上课签到打卡考勤口令签到 - 2

    技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进

  8. 微信小程序切换云环境 - 2

    在开发微信小程序的时候,我们可能需要开发环境和测试环境,或者其他环境,下面是切换环境的方法。首先需要明确的是:前端的页面代码是不区分环境的,环境的区分指的是云函数、云数据库、云存储这些。1、更改云函数的使用云环境这里我们从cloud1更改为test-cloud,这个改完是没有用的,因为在前端代码指定了使用的云环境。cloudfunctions文件和miniprogram文件虽然都在一个目录下,但是这两个没有直接联系。2、在evList.js中添加自己云环境evList.js存储了云环境列表,这里把test-cloud加到这个列表里,需要填写envId和alias,参照cloud1写就行。3、更

  9. Spring Boot中的微信支付(小程序) - 2

    前言微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的。一、申请流程和步骤图1-1注册微信支付账号获取微信小程序APPID获取微信商家的商户ID获取微信商家的API私钥配置微信支付回调地址绑定微信小程序和微信支付的关系搭建SpringBoot工程编写后台支付接口发布部署接口服务项目使用微信小程序或者UniAPP调用微信支付功能支付接口的封装配置jwt或者openid的token派发原生微信小程序完成支付对接二、注册商家2.1商户平台商家或者企业想要通过微信支付来进行商品的销售,必须先通过微信平台(pay.weixin.qq.com)去将商家进行注册。注册成

  10. 微信小程序顶部标题栏与胶囊对齐 - 2

    介绍    最近在做微信小程序时,顶部标题栏总是与胶囊对不齐。往往是在这款手机上对齐了,在另外一款手机差很多。我在查阅资料后,提出了一种方法解决这个问题,即:在页面onLoad或组件created时,利用微信小程序提供的API,获取系统状态栏高度和胶囊信息,进而动态调整顶部标题栏样式。在苹果、小米、荣耀手机做验证,能做到精准对齐。理论        胶囊样式应该是垂直居中,有1px的border,border-radius为18px。        若要使顶部标题栏与胶囊对齐,则其高度必须是导航栏高度,标题栏内容也要垂直居中,顶部标题栏的外边距或内边距必须是状态栏高度。        如果顶部

随机推荐