摘要:实用的函数集合总结基本类型的判断在项目实例中,难免要做一些容错处理或者是对实例的类型判断,那么就可以把这部分的判断整理成公共的文件,供全局使用。
实用的函数集合总结 基本类型的判断
在项目实例中,难免要做一些容错处理或者是对实例的类型判断,那么就可以把这部分的判断整理成公共的js文件,供全局使用。
利用object.prototype.toString.call可以判断对象的类型
变量的两种类型值:
1、基本类型:String,Number,Boolean,undefined,null,按值访问
2、引用类型:Object,Array, 对象保存在内存中
可以作为项目的工具类,比如命名为tool.js
</>复制代码
export default isNumber(value) {
return Object.prototype.toString.call(value) == "[object Number]"
}
export default isString(value) {
return Object.prototype.toString.call(value) == "[object String]"
}
export default isArray(value) {
return Object.prototype.toString.call(value) == "[object Array]"
}
export default isBoolean(value) {
return Object.prototype.toString.call(value) == "[object Boolean]"
}
export default isUndefined(value) {
return value === undefined
}
export default isNull(value) {
return value === null
}
export default isSymbol(value) {
return Object.prototype.toString.call(value) == "[object Symbol]"
}
export default isObject(value) {
return ( Object.prototype.toString.call(value) == "[object Object]"
||
// if it isn"t a primitive value, then it is a common object
(
!isNumber(value) &&
!isString(value) &&
!isBoolean(value) &&
!isArray(value) &&
!isNull(value) &&
!isFunction(value) &&
!isUndefined(value) &&
!isSymbol(value)
)
)
}
//是否是一个空对象
export function isEmptyObject(obj) {
if(!isObject(obj)) {
return false
}
if(var key in obj) {
return false
}
return true
}
//是否是一个空数组
export function isEmptyArray(array) {
if(!isArray(array)) {
return false
}
return array.length > 0 ? false : true
}
export function isFunction(value) {
return Object.prototype.toString.call(value) == "[object Function]";
}
引用类型克隆合并
Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说,如果拷贝后的结果是两个对象指向同一引用地址,修改其中一个对象的属性,则另一个对象的属性也会改变
所以改变引用类型值时会影响到拷贝的值
</>复制代码
var obj1 = {a: {b: 1}};
var obj2 = Object.assign({}, obj1);
obj1.a.b = 2;
obj2.a.b // 2
下面extend函数就是解决上面的问题
</>复制代码
/*
深度合并内容
引用类型克隆合并
arguments[0] = target
arguments type is Object Or Array
多内容合并覆盖优先级: arguments[0]
此时引用类型克隆出来的对象就是完全独立的对象了,源对象修改属性不会影响到克隆的对象
</>复制代码
var obj1 = {a: {b: 1}};
var obj2 = extend({}, obj1)
obj1.a.b = 2;
obj2.a.b // 1
可以合并 对象与对象,数组与数组,对象与数组等
不同时间形式的输出
时间戳是一样的,有时需要根据需求输出不一样格式的时间形式
yyyy年MM月dd日 hh:mm:ss
yyyy年MM月dd日
yyyy-mm-dd
</>复制代码
/*@param date 时间戳*/
/*@param format 时间格式*/
function dateFormat(date,format){
if(!format || typeof format !== "string"){
console.error("format is undefiend or type is Error");
return "";
}
date = date instanceof Date? date : (typeof date === "number"|| typeof date === "string")? new Date(date): new Date();
//解析
var formatReg = {
"y+": date.getFullYear(),
"M+": date.getMonth()+1,
"d+": date.getDate(),
"h+": date.getHours(),
"m+": date.getMinutes(),
"s+": date.getSeconds()
}
for(var reg in formatReg){
if(new RegExp(reg).test(format)){
var match = RegExp.lastMatch;
format = format.replace(match, formatReg[reg]< 10 ? "0"+formatReg[reg]: formatReg[reg].toString() );
}
}
return format;
}
这样,把你想要的时间的格式和时间戳传入即可。
</>复制代码
dateFormat(new Date().getTime(),"yyyy-MM-dd hh:mm:ss")
dateFormat(new Date().getTime(),"MM-dd-yy hh:mm:ss")
...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/99396.html
摘要:基本概念学习目标学会如何使用,掌握的常用,能够使用实现常见的效果。想要实现简单的动画效果,也很麻烦代码冗余。实现动画非常简单,而且功能更加的强大。注意选择器返回的是对象。 jQuery基本概念 学习目标:学会如何使用jQuery,掌握jQuery的常用api,能够使用jQuery实现常见的效果。 为什么要学习jQuery? 【01-让div显示与设置内容.html】 使用javasc...
摘要:基本概念学习目标学会如何使用,掌握的常用,能够使用实现常见的效果。想要实现简单的动画效果,也很麻烦代码冗余。实现动画非常简单,而且功能更加的强大。注意选择器返回的是对象。 jQuery基本概念 学习目标:学会如何使用jQuery,掌握jQuery的常用api,能够使用jQuery实现常见的效果。 为什么要学习jQuery? 【01-让div显示与设置内容.html】 使用javasc...
摘要:基本概念学习目标学会如何使用,掌握的常用,能够使用实现常见的效果。想要实现简单的动画效果,也很麻烦代码冗余。实现动画非常简单,而且功能更加的强大。注意选择器返回的是对象。 jQuery基本概念 学习目标:学会如何使用jQuery,掌握jQuery的常用api,能够使用jQuery实现常见的效果。 为什么要学习jQuery? 【01-让div显示与设置内容.html】 使用javasc...
摘要:基本概念学习目标学会如何使用,掌握的常用,能够使用实现常见的效果。想要实现简单的动画效果,也很麻烦代码冗余。实现动画非常简单,而且功能更加的强大。注意选择器返回的是对象。 jQuery基本概念 学习目标:学会如何使用jQuery,掌握jQuery的常用api,能够使用jQuery实现常见的效果。 为什么要学习jQuery? 【01-让div显示与设置内容.html】 使用javasc...
摘要:忍者级别的函数操作对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于而言,匿名函数是一个很重要且具有逻辑性的特性。通常,匿名函数的使用情况是创建一个供以后使用的函数。 JS 中的递归 递归, 递归基础, 斐波那契数列, 使用递归方式深拷贝, 自定义事件添加 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果...
阅读 3224·2021-10-14 09:50
阅读 1394·2021-10-08 10:21
阅读 3871·2021-10-08 10:16
阅读 3311·2021-09-27 14:02
阅读 3280·2021-09-23 11:21
阅读 2425·2021-09-07 10:17
阅读 527·2019-08-30 14:00
阅读 2278·2019-08-29 17:26