更新记录
1.0.2(2024-04-25)
自用模板,有需要自行修改
平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.93 app-vue | × | √ | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
√ | √ | √ | × | √ | × | × | × | × |
结构赋值
let arr = [1,2,3]
let {a,b,c} = arr
console.log(a,b,c) //1,2,3
let {a,,c} = arr //不想要的给它空出来就行了
console.log(a,b,c) //1,3
let arr1 =[1,2,3,4,5,6]//一组很长的数组
let {a,b,c,...mores} = arr1 //如果结构化上面的arr1 一个一个的写很麻烦,就可以使用扩展运算符... ,mores:随便起的名字 ...mores表示结构剩下的所有
console.log(a,b,c,mores) //1,2,3,4,5,6
let {a,b} = {a:10,b:20}
console.log(a,b) //10,20
let {a=10,b=20} = {a:5,b} //a=10 10表示默认值,当a:5的5为空时,那么a就等于默认值10
console.log(a,b) //5,20
//数组结构
const [max,min,avg] = [100,60,80]
console.log(max) //100
console.log(min) //60
console.log(avg) //80
//对象结构1
let user={
name:'张三'
age:20
}
let {name,age} = user
console.log(name,age)//张三,20
//对象结构2
let user=[{
name:'张三'
age:20
}]
let [{name,age}] = user
console.log(name,age)//张三,20
let obj1={
a:123,
barr:[]
c:'hellored'
}
let {a} = obj1
console.log(a)//我只需要obj1中的a那么就可以这么操作
let {a,...res} = obj1 //剩余结构
is() = === //is等价于=== 表示数据是否严格相等 但是===有个缺陷。例如: NaN===NaN//false Object.is(NaN,NaN)//true
console.log(Object.is(NaN,NaN))//true
assign() //对象浅拷贝(对象的合并) Object.assign(target,obj1,obj2,...) 它会把obj1,obj2,obj3等等数据合并到target中
console.log(Object.assign({},{a:1},{b:2}))//{a:1,b:2}
let newObj = Object.assign({},{a:1},{b:2}) //返回合并之后的新对象,属于浅拷贝
console.log(newObj)
ES6 带默认参数的函数
add(a=10,b=20){ //a和b不传时取默认参数
return a+b
}
console.log(add()) //30
add(a,b=20){
return a+b
}
console.log(add(30)) //50
//默认的表达式也可以是一个函数
add(a,b=getVal(5)){
return a+b
}
getVal(val){
return val+5
}
console.log(add(10)) //20
es6 箭头函数
//es5
let add = function(){
return a+b
}
//es6
let add =(a,b)=>{
return a+b
}
//如果参数只有一个值
let add = val=>val //返回一个val
//如果要运算
let add = val =>(val+5)
//如果参数有2个值
let add = (a+b) =>a+b
//如果没有参数
let add =()=>a
//如果返回的是对象或数组必须加()
let getObj=id=>({id,name:'张三'})
Symbol类型
使用symbol定义的变量是属于独一无二的,同一个值内存地址不同,用symbol定义的变量可以作为对象的私有属性变量
const a = symbol('zhangsan')
const b = symbol('zhangsan')
console.log(a===b)//false a和b独占一份内存地址所以它两不相等
//例如对象
let s1 =symbol('s1')
let s2 =symbol('s2')
console.log(s1)
let obj = {}
obj[s1] = '张三' //这样给obj赋值也可以
console.log(obj[s1])//张三
let obj1 = {
[s2]:'李四'
}
console.log(obj1[s2])//李四
set 集合数据类型
set集合:表示无重复值的有序列表
let set = new Set()//创建一个空的集合
//add:添加元素
set.add('2')
set.add(3)
set.add([0,1,2,3,4])
//delete:删除元素
set.delete(2)
//has:校验某个值是否在set集合中
set.has(2)
//size:获取集合的长度
set.size
//forEach:遍历集合
set.forEach((val,key)=>{
console.log(val,key)
})
//将集合转化为数组
let set2 = new Set([1,2,3,3,3,4,5])
let arr =[...set2]
console.log(arr)//[1,2,3,4,5]
map集合数据类型
map集合:map类型是键值对的有序列表,键和值是任意类型的
let map = new Map()
map.set('name','张三')
map.set('age',20)
console.log(map)
console.log(map.get('name'))//张三
console.log(map.has('name'))//true
es6语法导入导出
//方式一
export const imgUrl = url => BASE_URL+url
import { imgUrl } from '@/common/util'
//方式二
const imgUrl = url => BASE_URL+url
export{ imgUrl }
import { imgUrl } from '@/common/util'
//方式三
const imgUrl = url => BASE_URL+url
export default{ imgUrl }
import imgUrl from '@/common/util'