陆续更新
jQuery中的切换toggle
// 点击后切换sTitle内容
<template>
<view class="main">
<view @click="toggle">{{loginTitle}}</view>
</view>
</template>
<script>
export default {
data() {
return {
sType:'default',
sTitle:'账号登录',
}
},
methods: {
toggle(){
if(this.sType == 'sms'){
this.sType = 'default';
this.sTitle = '账号登录';
}else{
this.sType = 'sms';
this.sTitle = '短信登录';
}
},
}
}
</script>
JSON对象的深层合并
原生方法OBJECT.assign(t,s)
,但如果遇到{a:1,b:{c:2,d:3}}
和 {a:11,b:{c:22,e:33}}
合并,
那么合并结果是 {a:11,b:{c:22,e:33}}
,而不是预期的{a:11,b:{c:22,d:3,e:33}}
function assignObject(target={},sources={}){
let obj = target;
if(typeof target != 'object' || typeof sources != 'object'){
return sources; // 如果其中一个不是对象 就返回sources
}
for(let key in sources){
// 如果target也存在 那就再次合并
if(target.hasOwnProperty(key)){
obj[key] = assignObject(target[key],sources[key]);
} else {
// 不存在就直接添加
obj[key] = sources[key];
}
}
return obj;
}
获得数据类型
php的方便之一就是各种类型直接上函数,比如is_array()
,js的话有点乱,这里整理了一个:
function getType(obj){
//如果不是object类型的数据,直接用typeof就能判断出来
let type = typeof obj;
if (type !== 'object') {
return type;
}
//如果是object类型数据,准确判断类型必须使用Object.prototype.toString.call(obj)的方式才能判断
//注意返回结果开头字母大写:Array,Object,Null,Date,RegExp,Error,Function,这里统一小写
let r = Object.prototype.toString.call(obj).replace(/^\[object (\S+)\]$/, '$1');
return r.toLowerCase();
};