JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集

工具地址:https://github.com/BothEyes1993/bes-jstools

bes-jstools

100多个基础常用JS函数和各种数据转换处理集合大全,此工具包是在 outils 的基础上,加上个人平时收集的代码片段进行的二次整合

Browser Support

7+ ? Latest ? Latest ? Latest ? Latest ? 6.1+ ?

Installing

npm install bes-jstools --save

Using nodejs

const BesUtils = require('bes-jstools')

Get on unpkg

<script src="https://unpkg.com/[email protected]/dist/bes-utils.min.js"></script>

ES6 Module import

import BesUtils from 'bes-jstools'

API

  • 基础函数

    • isNaN (val) 判断是否非数值
    • isFinite (val) 判断是否为有限数值
    • isUndefined (val) 判断 Undefined
    • isArray (val) 判断是否数组
    • isFloat (val) 判断是否小数
    • isInteger (val) 判断是否整数
    • isBoolean (val) 判断是否 Boolean 对象
    • isString (val) 判断是否 String 对象
    • isNumber (val) 判断是否 Number 对象
    • isRegExp (val) 判断是否 RegExp 对象
    • isObject (val) 判断是否 Object 对象
    • isPlainObject (val) 判断是否是一个对象
    • isDate (val) 判断是否 Date 对象
    • isError (val) 判断是否 Error 对象
    • isTypeError (val) 判断是否 TypeError 对象
    • isEmpty (val) 判断是否为空,包括空对象、空数值、空字符串
    • isNull (val) 判断是否为 Null
    • isSymbol (val) 判断是否 Symbol 对象
    • isArguments (val) 判断是否 Arguments 对象
    • isElement (val) 判断是否 Element 对象
    • isDocument (val) 判断是否 Document 对象
    • isWindow (val) 判断是否 Window 对象
    • isFormData (val) 判断是否 FormData 对象
    • isMap (val) 判断是否 Map 对象
    • isWeakMap (val) 判断是否 WeakMap 对象
    • isSet (val) 判断是否 Set 对象
    • isWeakSet (val) 判断是否 WeakSet 对象
    • isLeapYear (date) 判断是否闰年
    • isMatch (obj, source) 判断属性中的键和值是否包含在对象中
    • isEqual (obj1, obj2) 深度比较两个对象之间的值是否相等
    • isEqualWith (obj1, obj2, func) 深度比较两个对象之间的值是否相等,使用自定义比较函数
    • isDateSame (date1, date2, format) 判断两个日期是否相同
  • 常用函数
    • toNumber ( num ) 转数值
    • toInteger ( num ) 转整数
    • toFixedNumber ( num, digits ) 和 Number.toFixed 类似,区别就是不会对小数进行四舍五入,结果返回数值
    • toFixedString ( num, digits ) 和 Number.toFixed 类似,区别就是不会对小数进行四舍五入,结果返回字符串
    • toArray ( array ) 将对象或者伪数组转为新数组
    • toStringJSON (str) 字符串转 JSON
    • toJSONString (obj) JSON 转字符串
    • getType (obj) 获取对象类型
    • getSize ( obj ) 返回对象的长度
    • uniqueId ( prefix ) 获取一个全局唯一标识
    • uniq ( array ) 数组去重
    • union ( ...array ) 将多个数的值返回唯一的并集数组
    • random ( min, max ) 获取一个指定范围内随机数
    • range ( start, stop, step ) 序号列表生成函数
    • clear (obj[, defs, assigns]) 清空对象; defs如果不传(清空所有属性)、如果传对象(清空并继承)、如果传值(给所有赋值)
    • remove (obj, iteratee) 移除对象属性
    • assign (destination, ...sources) 浅拷贝一个或者多个对象到目标对象中,如果第一值是true,则使用深拷贝
    • clone (obj, deep) 浅拷贝/深拷贝
    • destructuring (obj, ...target) 将一个或者多个对象值解构到目标对象
    • trim ( str ) 去除字符串左右两边的空格
    • trimLeft ( str ) 去除字符串左边的空格
    • trimRight ( str ) 去除字符串右边的空格
    • escape ( str ) 转义HTML字符串,替换&, <, >, ", ‘, `字符
    • unescape ( str ) 反转 escape
    • camelCase ( str ) 将带驼峰字符串转成字符串
    • kebabCase ( str ) 将字符串转成驼峰字符串
    • repeat ( str, count ) 将字符串重复 n 次
    • padStart ( str, targetLength, padString ) 用指定字符从前面开始补全字符串
    • padEnd ( str, targetLength [, padString] ) 用指定字符从后面开始补全字符串
    • startsWith ( str, val [, startIndex] ) 判断字符串是否在源字符串的头部
    • endsWith ( str, val [, startIndex] ) 判断字符串是否在源字符串的尾部
    • slice ( array, start, end ) 裁剪 Arguments 或数组 array,从 start 位置开始到 end 结束,但不包括 end 本身的位置
    • indexOf (obj, val) 返回对象第一个索引值
    • findIndexOf (obj, iteratee [, context]) 返回对象第一个索引值
    • lastIndexOf (obj, val) 从最后开始的索引值,返回对象第一个索引值
    • findLastIndexOf (obj, iteratee [, context]) 从最后开始的索引值,返回对象第一个索引值
    • includes (obj, val) 判断对象是否包含该值,成功返回 true 否则 false
    • includeArrays (array1, array2) 判断数组是否包含另一数组
    • each ( obj, iteratee [, context] ) 通用迭代器
    • arrayEach ( obj, iteratee [, context] ) 数组迭代器
    • objectEach ( obj, iteratee [, context] ) 对象迭代器
    • lastEach ( obj, iteratee [, context] ) 通用迭代器,从最后开始迭代
    • lastArrayEach ( obj, iteratee [, context] ) 数组迭代器,从最后开始迭代
    • lastObjectEach ( obj, iteratee [, context] ) 对象迭代器,从最后开始迭代
    • lastForOf ( obj, iteratee [, context] ) 通用迭代器,从最后开始迭代,支持 return false 跳出循环 break
    • has (obj, property) 检查键、路径是否是该对象的属性
    • get (obj, property, defaultValue) 获取对象的属性的值,如果值为 undefined,则返回默认值
    • set ( obj, property, value ) 设置对象属性上的值。如果属性不存在则创建它
    • keys (obj) 获取对象所有属性
    • values (obj) 获取对象所有值
    • entries (obj) 获取对象所有属性、值
    • first (obj) 获取对象第一个值
    • last (obj) 获取对象最后一个值
    • groupBy ( obj, iteratee [, context] ) 集合分组,默认使用键值分组,如果有 iteratee 则使用结果进行分组
    • countBy ( obj, iteratee [, context] ) 集合分组统计,返回各组中对象的数量统计
    • sortBy ( arr, iteratee [, context] ) 数组按属性值升序
    • shuffle ( array ) 将一个数组随机打乱,返回一个新的数组
    • sample ( array, number ) 从一个数组中随机返回几个元素
    • some ( obj, iteratee [, context] ) 对象中的值中的每一项运行给定函数,如果函数对任一项返回 true,则返回 true,否则返回 false
    • every ( obj, iteratee [, context] ) 对象中的值中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true,否则返回 false
    • filter ( obj, iteratee [, context] ) 根据回调过滤数据
    • find ( obj, iteratee [, context] ) 查找匹配第一条数据
    • findKey ( obj, iteratee [, context] ) 查找匹配第一条数据的键
    • map ( obj, iteratee [, context] ) 指定方法后的返回值组成的新数组
    • objectMap ( obj, iteratee [, context] ) 指定方法后的返回值组成的新对象
    • zipObject ( props, values ) 根据键数组、值数组对转换为对象
    • pick (obj, array) 根据 keys 过滤指定的属性值 或者 接收一个判断函数,返回一个新的对象
    • omit (obj, array) 根据 keys 排除指定的属性值 或者 接收一个判断函数,返回一个新的对象
    • copyWithin ( array, target, start [, end] ) 浅复制数组的一部分到同一数组中的另一个位置,数组大小不变
    • sum ( obj, iteratee [, context] ) 求和函数,将数值相加
    • mean ( obj, iteratee [, context] ) 求平均值函数
    • reduce ( array, iteratee [, initialValue] ) 接收一个函数作为累加器,数组中的每个值(从左到右)开始合并,最终为一个值
    • chunk ( array, size ) 将一个数组分割成大小的组。如果数组不能被平均分配,那么最后一块将是剩下的元素
    • min ( arrb[, iteratee] ) 获取最小值
    • max ( arr [, iteratee] ) 获取最大值
    • commafy ( num [, options] ) 数值千分位分隔符、小数点
  • 日期函数
    • now ( ) 返回当前时间戳
    • timestamp ( date[, format] ) 将日期转为时间戳
    • toStringDate ( str, format ) 任意格式字符串转为日期
    • toDateString ( date [, format, options] ) 日期格式化为任意格式字符串
    • getWhatYear ( date, year [, month] ) 返回前几年或后几年的日期,可以指定年的最初时间(first)、年的最后时间(last)、年的月份(0~11),默认当前
    • getWhatMonth ( date, month [, day] ) 返回前几月或后几月的日期,可以指定月初(first)、月末(last)、天数,默认当前
    • getWhatWeek ( date, week [, day] ) 返回前几周或后几周的日期,可以指定星期几(0~6),默认当前
    • getWhatDay ( date, day [, mode] ) 返回前几天或后几天的日期,可以指定当天最初时间(first)、当天的最后时间(last)
    • getDayOfYear ( date [, year] ) 返回某个年份的天数,可以指定前几个年或后几个年,默认当前
    • getYearDay ( date ) 返回某个年份的第几天
    • getYearWeek ( date ) 返回某个年份的第几周
    • getMonthWeek ( date ) 返回某个月份的第几周
    • getDayOfMonth ( date [, month] ) 返回某个月份的天数,可以指定前几个月或后几个月,默认当前
    • getDateDiff ( startDate, endDate [, rules] ) 返回两个日期之间差距,如果结束日期小于开始日期 done 为 fasle
  • 高级函数
    • toArrayTree ( array, options ) 一个高性能的树结构转换函数,将一个带层级的数据列表转成树结构
    • toTreeArray ( array, options ) 将一个树结构转成数组列表
    • findTree ( obj, iterate[, options, context] ) 从树结构中查找匹配第一条数据的键、值、路径
    • eachTree ( obj, iterate[, options, context] ) 从树结构中遍历数据的键、值、路径
    • mapTree ( obj, iterate[, options, context] ) 从树结构中指定方法后的返回值组成的新数组
    • filterTree ( obj, iterate[, options, context] ) 从树结构中根据回调过滤数据
    • property ( path ) 返回一个获取对象属性的函数
    • pluck ( array, key ) 获取数组对象中某属性值,返回一个数组
    • invoke ( list, path, ...arguments ) 在list的每个元素上执行方法,任何传递的额外参数都会在调用方法的时候传递给它
    • zip ( ) 将每个数组中相应位置的值合并在一起
    • unzip ( arrays ) 与 zip 相反
    • delay (callback, wait[, ...arguments]) 该方法和 setTimeout 一样的效果,区别就是支持额外参数
    • bind (callback, context[, ...arguments]) 创建一个绑定上下文的函数
    • once (callback, context[, ...arguments]) 创建一个只能调用一次的函数,只会返回第一次执行后的结果
    • after (count, callback, context) 创建一个函数, 调用次数超过 count 次之后执行回调并将所有结果记住后返回
    • before (count, callback, context) 创建一个函数, 调用次数不超过 count 次之前执行回调并将所有结果记住后返回
    • throttle (callback, wait[, options]) 创建一个策略函数,当被重复调用函数的时候,至少每隔多少秒毫秒调用一次该函数
    • debounce (callback, wait[, options]) 创建一个防反跳策略函数,在函数最后一次调用多少毫秒之后才会再次执行,如果在期间内重复调用会重新计算延迟
  • 浏览器函数
    • serialize ( query ) 序列化查询参数
    • unserialize ( str ) 反转序列化查询参数
    • browse ( ) 获取浏览器信息
    • locat ( ) 获取地址栏信息
    • parseUrl ( url ) 解析 URL 参数
    • getBaseURL ( ) 获取上下文路径
    • cookie ( name, value, options ) Cookie 操作函数

原文地址:https://www.cnblogs.com/both-eyes/p/10799586.html

时间: 2024-08-07 05:47:36

JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集的相关文章

【java】【反射】反射实现判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更

java的反射实现: 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 今日份代码: package com.sxd.streamTest; import java.lang.reflect.Field; import java.util.*; /** * @ClassName Test * @Description 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 * @Author sxd

browser浏览器类型判断

应要求,在加载页面时先进行浏览器类型判断再跳转到指定的页面去. 在代码后面加上判断返回值的代码,从而进行浏览器类型判断.平板和手机上都测试了可以使用. <script language="JavaScript" type="text/javascript"> <!-- var browser = { versions: function () { var u = navigator.userAgent, app = navigator.appVer

jQuery的类数组对象结构(转)

原文:http://www.imooc.com/code/3248 为什么是类数组对象呢? 很多人迷惑的jQuery为什么能像数组一样操作,通过对象get方法或者直接通过下标0索引就能转成DOM对象. 首先我们看jQuery的入口都是统一的$, 通过传递参数的不同,实现了9种方法的重载: 1. jQuery([selector,[context]]) 2. jQuery(element) 3. jQuery(elementArray) 4. jQuery(object) 5. jQuery(jQ

JS函数动作分层结构详解及Document.getElementById 释义 事件 函数 变量 script标签 var function

html +css 静态页面 js     动态 交互 原理: js就是修改样式, 比如弹出一个对话框. 弹出的过程就是这个框由disable 变成display:enable. 又或者当鼠标指向的时候换一个颜色,就是一个修改样式的工具. 编写JS的流程 布局:HTML+CSS 事件:确定用户做哪些操作(产品设计) 编写JS:在事件中,用JS来修改页面元素的样式(外加属性:确定要修改哪些属性) 什么是事件 一个完整的事件= <在某个作用域 事件声明='函数动作'> </> 作用域:

js中浏览器类型判断

在JS中判断浏览器的类型,估计是每个编辑过页面的开发人员都遇到过的问题.在众多的浏览器产品中,IE.Firefox.Opera.Safari........众多品牌却标准不一,因此时常需要根据不同的浏览器,甚至相同浏览器不同版本做不同的操作,因此,知晓浏览器的判断方法,还是很重要的.下面列举一下常用的判断方法:1.判断浏览器是否为IE        document.all ? 'IE' : 'others':在IE下document.all值为1,而其他浏览器下的值为0:        nav

JS向后台传递json数组对象

var Obj = []; //一下代码可以循环插入 var returnObj = new Object();//创建一个对象 returnObj.id = "123": returnObj.money = 456""; Obj.push(returnObj); JS中将Obj对象进行序列化操作 Obj = JSON.stringify(Obj); //发送ajax请求$.ajax({ type : "POST", url : top.base

Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换

{ "@type":"java.lang.RuntimeException", "cause":{ "@type":"com.attilax.sql.EmptyRzt", "localizedMessage":"mmmm1", "message":"mmmm1", "stackTrace":[{ "

数组、结构体、联合体、枚举类型、类型转换

1.数组 int num[2] = { 1, 2 };//1×2,num[0]=1 int num[2][2] = { { 00, 01 }, { 10, 11 } };//2×2,num[1][1]=11 int num[2][2][2] = { {{000,001},{010,011}}, {{100,101},{110,111}} };//2个2×2数组,num[1][1][1]=111 2.结构体 #include <stdio.h> int main() { struct Famil

【转】 微信浏览器类型判断

前两天刚刚在工作中遇到了一个浏览器判断的,结果在微信浏览器判断的时候犯了难,不知道是什么内核的,刚才看了一个朋友的博客,发现了这个写法,当然我现在是没有测试: 写法如下: 判断是否是微信浏览器,是的话才会显示页面 if(strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger') !== false){ //这里是微信浏览器 echo '你的内容'; } 原文链接