JavaScript 函数及开发技巧
生成一周时间
1 | function getWeekTime(){ |
判断空对象
1 | let a = {} |
类型判断
1 | /** |
对象属性剔除
1 | /** |
日期格式化
1 | /** |
性能分析
1 | window.onload = function(){ |
防抖
1 | /** |
节流
1 | /** |
base64数据导出文件下载
1 | /** |
检测是否为PC端浏览器
1 | function isPCBroswer() { |
识别浏览器及平台
1 | function getPlatformInfo(){ |
加入收藏、设为首页、保存到桌面
1 | //设为首页 |
1 | <a href="JavaScript:void(0);" onclick="SetHome(this,'http://www.xyz.com');">设为首页</a> |
实现隐藏手机号码中间4位数
1 | // 正则 |
延迟函数delay
1 | const delay = ms => new Promise((resolve, reject) => setTimeout(resolve, ms)) |
分割指定长度的元素数组
1 | const listChunk = (list, size = 1, cacheList = []) => { |
字符串前面空格去除与替换
1 | const trimStart = str => str.replace(new RegExp('^([\\s]*)(.*)$'), '$2') |
字符串后面空格去除与替换
1 | const trimEnd = str => str.replace(new RegExp('^(.*?)([\\s]*)$'), '$1') |
获取当前子元素是其父元素下子元素的排位
1 | const getIndex = el => { |
获取当前元素相对于document的偏移量
1 | const getOffset = el => { |
获取元素类型
1 | const dataType = obj => Object.prototype.toString.call(obj).replace(/^\[object (.+)\]$/, '$1').toLowerCase(); |
判断是否是移动端
1 | const isMobile = () => 'ontouchstart' in window |
fade动画
1 | const fade = (el, type = 'in') { |
将指定格式的字符串解析为日期字符串
1 | const dataPattern = (str, format = '-') => { |
禁止网页复制粘贴
1 | const html = document.querySelector('html') html.oncopy = () => false html.onpaste = () => false |
input框限制只能输入中文
1 | const input = document.querySelector('input[type="text"]') |
去除字符串的html代码
1 | const removehtml = (str = '') => str.replace(/<[\/\!]*[^<>]*>/ig, '') |
将RGB模式下的颜色转换为十六进制
1 | const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0'); |
获取数组交集
1 | const intersection = (list, ...args) => list.filter(item => args.every(list => list.includes(item))) |
类型强制转换
string 强制转换为数字
常用 *、+ 将 字符串转为数字
1 | '32' * 1 // 32 |
使用 Boolean 过滤数组中的所有假值
1 | const compact = arr => arr.filter(Boolean) |
取整
num | 0
1 | 1.3 | 0 // 1 |
判断奇偶
&、%
1 | !!(1 % 2) // true 奇 |
函数
函数默认值
1 | func = (l, m = 3, n = 4 ) => (l * m * n); |
强制参数
1 | mandatory = ( ) => { |
隐式返回值
1 | function calcCircumference(diameter) { |
一次性函数
1 | var sca = function() { |
通过图片 url 获取文件大小
- 通过Ajax请求获取
- 通过Performance API
最好的方式就是,只对专门放置资源文件的服务器设置该响应头,或者在主服务器中,针对资源文件的请求加入该响应头,就可以避免这种漏洞了。
字符串
字符串比较时间先后
1 | var a = "2014-08-08"; |
在字符串中查找给定的单词,并替换为另一个单词
1 | const findAndReplace = (string, wordToFind, wordToReplace) => string.split(wordToFind).join(wordToReplace); |
数字
精确到指定位数的小数
1 | const round = (n, decimals = 0) => Number(`${Math.round(`${n}e${decimals}`)}e-${decimals}`) |
数字补0操作
1 | const addZero1 = (num, len = 2) => (`0${num}`).slice(-len) |
数组
reduce方法同时实现map和filter
1 | const numbers = [10, 20, 30, 40]; |
统计数组中相同项的个数
1 | var cars = ['BMW','Benz', 'Benz', 'Tesla', 'BMW', 'Toyota']; |
使用解构来交换参数数值
1 | let param1 = 1; |
接收函数返回的多个结果
1 | async function getFullPost(){ |
将数组平铺到指定深度
1 | const flatten = (arr, depth = 1) => |
数组的对象解构
1 | const csvFileLine = '1997,John Doe,US,john@doe.com,New York'; |
获取数组中的最大数字
1 | const maxItemOfArray = (arr) => arr.sort((a, b) => b - a)[0]; |
检查数组的所有项是否相等
1 | const areAllEqual = array => array.every(item => item === array[0]); |
求给定数字的平均值
1 | const averageOf = (...numbers) => numbers.reduce((a, b) => a + b, 0) / numbers.length; |
反转一个字符串
1 | const reverseString = str => [...str].reverse().join(''); |
求给定数字的和
1 | const sumOf = (...numbers) => numbers.reduce((a, b) => a + b, 0); |
对象
使用解构删除不必要属性
1 | let {_internal, tooBig, ...cleanObject} = {el1: '1', _internal:"secret", tooBig:{}, el2: '2', el3: '3'}; |
正则校验
金额
1 | export const isMoney = (s) => { |
邮箱
1 | export const isEmail = (s) => { |
手机号码
1 | export const isMobile = (s) => { |
1 | export const isMobile = (s) => { |
电话号码
1 | export const isPhone = (s) => { |
是否url地址
1 | export const isURL = (s) => { |
判断类型
是否字符串
1 | export const isString = (o) => { |
是否数组
1 | export const isArray = (o) => { |
1 | Array.isArray([1, 2, 3]); |
是否数字
1 | export const isNumber = (o) => { |
是否boolean
1 | export const isBoolean = (o) => { |
是否函数
1 | export const isFunction = (o) => { |
是否为null
1 | export const isNull = (o) => { |
取消双击后的文本选中
1 | document.addEventListener('mousedown', (event) => { |
去除字符串内的文件扩展名
1 | fileName.replace(/\.[^/.]+$/, ""); |
Node 获取文件名
1 | const path = require('path'); |
防止鼠标选中事件
1 | <div class="mask" onselectstart="return false"></div> |
给元素添加了onslectstart=”return false”,就可以防止鼠标选中事件。
给动态添加的元素绑定事件
1 | $(document).on("click", ".large", slide); //jq中的写法 |
常用的全屏居中 JS 函数
1 | //获取元素 |
在输入框输入完内容并按回车的时候进行判断
1 | <input type="textbox" id="textbox1" onkeypress="CheckInfo" /> |
Video
1 | var elevideo = document.getElementById("video"); |
将二进制流转为Blob转成文件 var blob = new Blob()
以上是我对下列视频及文章的归纳和总结。
10个非常实用的JS工具函数√
JS实现浏览器:加入收藏、设为首页、保存到桌面的方法功能√
【开发小技巧】022—如何通过JS方式实现隐藏手机号码中间4位数 √
JS 中可以提升幸福度的小技巧√
15条高效的JS技巧,你千万要收藏好了√
面试问题之——给你图片的url,你能知道它所占的字节空间吗? √
12 个实用的前端开发技巧总结 √
JS判断视频Video的播放、暂停、结束完成及获取长度事件监听处理√
js获取当天零点时间_yujin0213的博客-CSDN博客_js获取今天0点时间√
工作中常用js的整理
12种JS常用获取时间的方式
41个最新的JavaScript开发技巧,你必须要知道
15条值得收藏的高效JS技巧
15条JS技巧
JavaScript中的reduce()的5个用例
解锁各种js数组骚操作,总有你想要的!
7个处理JavaScript值为undefined的技巧
我和大佬之间差一个 JS 工具函数大全
前端常用 60 余种工具方法
完美版 js 金钱正则表达式校验
[译] JavaScript 技巧 —— 子代构造函数,文本选择,内联 Workers 等等
18个有用的JavaScript片段
前后端导出/下载excel方法
24个解决实际问题的ES6代码段
JavaScript 函数及开发技巧
install_url
to use ShareThis. Please set it in _config.yml
.