【JS】1070- 8个工程必备的JavaScript代码片段(建议添加到项目中)
8个工程必备的JavaScript代码片段,听过这样起博客标题可以提高阅读量。????
最近写博客好累,让8月征文活动搞的,今天水一篇好了,麻烦不要给我点赞,不想看到消息通知的小红点。
1. 获取文件后缀名
使用场景:上传文件判断后缀名
/*** 获取文件后缀名* @param {String} filename*/export function getExt(filename) {if (typeof filename == 'string') {return filename.split('.').pop().toLowerCase()} else {throw new Error('filename must be a string type')}
}
复制代码
使用方式
getExt("1.mp4") //->mp4
复制代码
2. 复制内容到剪贴板
export function copyToBoard(value) {const element = document.createElement('textarea')document.body.appendChild(element)element.value = valueelement.select()if (document.execCommand('copy')) {document.execCommand('copy')document.body.removeChild(element)return true}document.body.removeChild(element)return false
}复制代码
使用方式:
//如果复制成功返回true
copyToBoard('lalallala')
复制代码
原理:
创建一个textare元素并调用select()方法选中
document.execCommand('copy')方法,拷贝当前选中内容到剪贴板。
3. 休眠多少毫秒
/*** 休眠xxxms* @param {Number} milliseconds*/
export function sleep(ms) {return new Promise(resolve => setTimeout(resolve, ms))
}//使用方式
const fetchData=async()=>{await sleep(1000)
}
复制代码
4. 生成随机字符串
/*** 生成随机id* @param {*} length* @param {*} chars*/
export function uuid(length, chars) {chars =chars ||'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'length = length || 8var result = ''for (var i = length; i > 0; --i)result += chars[Math.floor(Math.random() * chars.length)]return result
}
复制代码
使用方式
//第一个参数指定位数,第二个字符串指定字符,都是可选参数,如果都不传,默认生成8位
uuid()
复制代码
使用场景:用于前端生成随机的ID,毕竟现在的Vue和React都需要绑定key
5. 简单的深拷贝
/***深拷贝* @export* @param {*} obj* @returns*/
export function deepCopy(obj) {if (typeof obj != 'object') {return obj}if (obj == null) {return obj}return JSON.parse(JSON.stringify(obj))
}
复制代码
缺陷:只拷贝对象、数组以及对象数组,对于大部分场景已经足够
const person={name:'xiaoming',child:{name:'Jack'}}
deepCopy(person) //new person
复制代码
6. 数组去重
/*** 数组去重* @param {*} arr*/
export function uniqueArray(arr) {if (!Array.isArray(arr)) {throw new Error('The first parameter must be an array')}if (arr.length == 1) {return arr}return [...new Set(arr)]
}
复制代码
原理是利用Set中不能出现重复元素的特性
uniqueArray([1,1,1,1,1])//[1]
复制代码
7. 对象转化为FormData对象
/*** 对象转化为formdata* @param {Object} object*/export function getFormData(object) {const formData = new FormData()Object.keys(object).forEach(key => {const value = object[key]if (Array.isArray(value)) {value.forEach((subValue, i) =>formData.append(key + `[${i}]`, subValue))} else {formData.append(key, object[key])}})return formData
}
复制代码
使用场景:上传文件时我们要新建一个FormData对象,然后有多少个参数就append多少次,使用该函数可以简化逻辑
使用方式:
let req={file:xxx,userId:1,phone:'15198763636',//...
}
fetch(getFormData(req))
复制代码
8.保留到小数点以后n位
// 保留小数点以后几位,默认2位
export function cutNumber(number, no = 2) {if (typeof number != 'number') {number = Number(number)}return Number(number.toFixed(no))
}
复制代码
使用场景:JS的浮点数超长,有时候页面显示时需要保留2位小数
关于本文
来源:_红领巾
https://juejin.cn/post/6999391770672889893
1. JavaScript 重温系列(22篇全)
2. ECMAScript 重温系列(10篇全)
3. JavaScript设计模式 重温系列(9篇全)
4. 正则 / 框架 / 算法等 重温系列(16篇全)
5. Webpack4 入门(上)|| Webpack4 入门(下)
6. MobX 入门(上) || MobX 入门(下)
7. 120+篇原创系列汇总
回复“加群”与大佬们一起交流学习~
点击“阅读原文”查看 120+ 篇原创文章
【JS】1070- 8个工程必备的JavaScript代码片段(建议添加到项目中)相关推荐
- 8个工程必备的JavaScript代码片段(建议添加到项目中)
点击上方 前端瓶子君,关注公众号 回复算法,加入前端编程面试算法每日一题群 8个工程必备的JavaScript代码片段,听过这样起博客标题可以提高阅读量.???? 最近写博客好累,让8月征文活动搞的, ...
- 16个工程必备的JavaScript代码片段
作者:_红领巾 https://juejin.cn/post/7000919400249294862 1. 下载一个excel文档 同时适用于word,ppt等浏览器不会默认执行预览的文档,也可以用于 ...
- 16个必备的JavaScript代码片段
1. 下载一个excel文档 同时适用于word,ppt等浏览器不会默认执行预览的文档,也可以用于下载后端接口返回的流数据,见3 //下载一个链接 function download(link, na ...
- 18个项目必备的JavaScript代码片段——数组篇
大家好,我是若川.最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 参与,目前近3000人参与,0-5年工作经验的都可以参与学习. 1.chunk转换二维数组 将数组(array)拆 ...
- 第一百一十八期:运行 JavaScript 代码片段的 20 种工具
运行 JavaScript 代码片段的 20 种工具 前端日常开发中,我们使用喜爱的 IDE 调试 JavaScript 代码,比如我喜欢的代码编辑器有两个,Sublime Text 3 和 VS C ...
- 精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 该项目来自于 Github 用户 Chalarangelo,目前已在 Github 上获得了 ...
- JavaScript 代码片段
近期在GitHub上看到一位叫Chalarangelo的用户写了一篇30 秒就能理解的 JavaScript 代码片段,很多人都在看,下面分享一些他的JS用法. 给定一个 key 和一个 set 作为 ...
- 收集 48 个 JavaScript 代码片段,仅需 30 秒就可理解(值得收藏)
该项目来自于 Github 用户 Chalarangelo,目前已在 Github 上获得了 5000 多Star,精心收集了多达 48 个有用的 JavaScript 代码片段,该用户的代码可以让程 ...
- JavaScript代码片段
简介:本文收集了我常用的JavaScript代码片段,欢迎提意见! 大灰狼边敲门边说:"小兔子乖乖,把门儿开开!" 小兔子听到后,连忙去开门:"来喽!" 兔妈妈 ...
最新文章
- Solr环境搭建及IK分词的集成及solrJ的调用(一)
- 五行塔怎么吃第五个_红毛丹怎么吃 吃红毛丹的五个好处
- 天气情况(思维,dp思想)
- 采用DCO-OFDM的VLC系统
- Golang 单元测试:有哪些误区和实践?
- Oracle 常用伎俩和剧本
- java里shake是什么意思_shake是什么意思_shake在线翻译_英语_读音_用法_例句_海词词典...
- 关于CSDN官方对博文点赞漏洞的处理(Cookie劫持攻击)
- SQL Transcation的一些总结
- 利用EEPROM实现arduino的断电存储
- ASP.NET:创建Linked ValidationSummary, 深入理解ASP.NET的Validation
- Linux 内存管理之 SLUB分配器(1): Object-layout
- 可视化:这十个数据可视化工具软件平台你必须知道
- 电力-输配电知识汇总
- 面向对象技术(C++)学生成绩管理系统课程设计任务书及说明书
- 网易易盾首席产品风控官imlolo分享对社交业务安全风控的认知和思考
- 2018级《程序设计基础(B)II》期末上机考试 重现--SDUT
- pycharm2017.3.3破解到2099年
- 微信小程序自定义map组件标记点markers(兼容苹果和安卓)
- 工业4.0万物联网兴起 智能手机或将消亡