当前位置: 代码迷 >> 综合 >> 小程序与ES知识点整理(自用,仅供参考)
  详细解决方案

小程序与ES知识点整理(自用,仅供参考)

热度:42   发布时间:2023-11-19 11:09:03.0

1. 小程序的生命周期
全局:
(1)onLaunch() 加载完毕后调用
(2)onShow() 启动或进入前台时
(3)onHide() 切换至后台
(4)onError() 脚本发生错误
(5)onPageNotFound() 打开页面不存
(6)getApp() 获取当前app对象
局部
(1)onLoad() 页面加载时,只调用一次
(2)onShow() 显示或进入前台时
(3)onHide() 隐藏或切换至后台
(4)onReady() 页面初次渲染,只调用一次
(5)onUnload() 页面卸载时

2. 小程序的路由区别
1.wx.switchTab 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
2.wx.reLaunch 关闭所有页面,打开到应用内的某个页面
3.wx.redirectTo 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面
4.wx.navigateTo 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。
5.wx.navigateBack 关闭当前页面,返回上一页面或多级页面。

3.ES数组和字符串的属性方法
数组:

(1)forEach会遍历数组, 没有返回值, 不允许在循环体内写return, 不会改变原来数组的内容.
(2)map 遍历数组, 会返回一个新数组, 不会改变原来数组里的内容
(3)filter 会过滤掉数组中不满足条件的元素, 把满足条件的元素放到一个新数组中, 不改变原数组
(4)reduce(x,y) x第一个 y第二个
(5)some() 遍历数组的每一项, 有一个返回true, 就停止循环
(6)every遍历数组, 每一项都是true, 则返回true, 只要有一个是false, 就返回false
(7)find();查找数组某个元素
(8)findIndex();查找某个元素的索引值
字符串:

1.includes() //是否包含 -> 返回布尔变量
2.startsWith() //字符串开始位置是否包含 -> 返回布尔变量
3.endsWith() //字符串结束位置是否包含 -> 返回布尔变量
4.repeat() 替换
5.‘1’.padStart() //第一个参数是限制字符串的长度,第二个要补的内容 -> 01
6.‘1’.padEnd() //这个是从结尾处补足

4.组件的生命周期
1.created 在组件实例刚刚被创建时执行
2.attached 在组件实例进入页面节点树时执行
3.ready 在组件在视图层布局完成后执行
4.moved 在组件实例被移动到节点树另一个位置时执行
5.detached 在组件实例被从页面节点树移除时执行
6.error 每当组件方法抛出错误时执行

5.什么是构造函数,如何继承
构造函数
function Person(name){
this.name=name
}
let per=new Person(“小明”)
原型链
function Person(){}
Person.prototype.fufu=function(){}
原型链继承
Student.prototype=Person.prototype
ES6 class类继承
Student extends Person{
constructor(name){
super()
}
}
let stu=new Student()
ES5 call(this,xxx) apply(this,[ ])

6.ES6中如何模块化
export const bb=“123”
import *as from “…/…/pages/api.index.js”

7.小程序如何数据共享
const app=get app()

8.小程序组件化
父组件:
json: 自定义标签名:子组件路径
wxml:<自定义标签名 数据名=“数据名” bind:myevent=“自定义myevent方法名”>
view{ {新增自定义名}}/view
js: 自定义myevent方法名:function(e){
this.setData({
list:e.detail.mm
})
console.log(e)
}
data:{pp:“这是父亲”}
子组件
wxml:view { {pp}} /view
button bindtap:“chan” 点我 button
js: pp:{type:String}
chan:function(){
this.triggetEvent(“myevent”,{mm:123})
}

9.小程序如何绑定事件
bindtap="{ {}}"

10.小程序open-type的属性
share:分享
getUserinfo:获取用户信息
getPhoneNumeber:获取手机号码
contact:打开客服

11.this指向
1.普通函数为window
2.箭头函数为函数对象
3.构造函数为实例化对象
4.事件源中为事件源本身
5.时间函数为window
6.forEach,for of,for in 为第二个参数
7.小程序中为page页面

12.wxml和html的区别
1.标签名字不一样,且小程序标签更少,单一标签更多;
2.多了一些 wx:if 这样的属性以及 { { }} 这样的表达式
3.WXML仅能在微信小程序开发者工具中预览,而HTML可以在浏览器内预览
4.组件封装不同, WXML对组件进行了重新封装,
5.小程序运行在JS Core内,没有DOM树和window对象,小程序中无法使用window对象和document对象。

13.wxss和css的区别
1.WXSS 具有 CSS 大部分的特性,也做了一些扩充和修改;
2.WXSS新增了尺寸单位,WXSS 在底层支持新的尺寸单位 rpx;
3.WXSS 仅支持部分 CSS 选择器;
4.WXSS 提供全局样式与局部样式

14.组件模板template使用
创建template目录,在template目录中创建管理模板文件。
template name=“demo”
import src="…/…/templates/demo/index.wxml" /

15.let const var的区别
1.var声明的变量会挂载在window上,而let和const声明的变量不会:
2.var声明变量存在变量提升,let和const不存在变量提升
3.let和const声明形成块作用域
4.同一作用域下let和const不能声明同名变量,而var可以

16.本地存储的区别
1.localStorage:存储大小5m 永久存在,除非主动删除
2.sessionStorage:存储大小5m 浏览器关闭消失
3.cookie 存储大小4kb

17.介绍下 Set、Map的区别
应用场景Set用于数据重组,Map用于数据储存
Set:
  (1)成员不能重复
  (2)只有键值没有键名,类似数组
  (3)可以遍历,方法有add, delete,has Map:
   (1)本质上是健值对的集合,类似集合
  (2)可以遍历,可以跟各种数据格式转换

18.forEach、for in、for of三者区别
forEach更多的用来遍历数组
  (1)for in 一般常用来遍历对象或json
  (2)for of数组对象都可以遍历,遍历对象需要通过和Object.keys()
  (3)for in循环出的是key,for of循环出的是value

整理不易,有不对的地方请及时指出,有缺失的部分请评论留言,会及时补上的。
不喜勿喷!!!

  相关解决方案