JavaScript
只会cv的小前端
没有我cv解决不了的问题
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
js实现img图片懒加载
当然,这只是一个简单的示例代码,实际开发中可能需要处理更多的细节和边界情况。同时,也可以借助第三方的 JavaScript 库来简化懒加载的实现。然后,通过监听滚动、窗口调整大小和屏幕旋转等事件,在合适的时机检查图片是否需要加载。如果图片已经进入可见区域内,就将。在前端中,可以使用 JavaScript 来实现图片的懒加载。上述代码首先在页面加载完成后获取所有带有。类名,触发图片加载。原创 2023-08-25 17:30:25 · 670 阅读 · 0 评论 -
写一个js框架你会用到哪些设计模式
组合模式 (Composite Pattern):组合模式可以用于将对象组合成树形结构,使得用户以一致的方式对待单一对象和对象集合。适配器模式 (Adapter Pattern): 适配器模式可以用于将不同对象之间的接口转换为兼容的接口。在上面的例子中,我们使用组合模式将文件和目录组合成树形结构,使得用户可以以一致的方式对待单一文件和文件集合。对象包裹在闭包中才隐藏了起来,而通过返回的对象,我们可以实现与其它模块互动并读取配置数据。通过使用工厂模式,我们可以方便地创建多个类似的对象。实例来管理浏览器窗口。原创 2023-05-10 09:28:14 · 1049 阅读 · 1 评论 -
Array数组的各种详细使用方法
29.toString() : 将数组转换为字符串。28.of() : 创建一个包含指定元素的数组。原创 2023-04-24 15:28:23 · 913 阅读 · 0 评论 -
new Date 时间的常用方法,点赞收藏,很多你不知道
toISOString() - 将当前日期转换为ISO格式的字符串,格式为"yyyy-MM-ddTHH:mm:ss.sssZ"toJSON() - 将当前日期转换为JSON格式的字符串,格式为"yyyy-MM-ddTHH:mm:ss.sssZ"toString() - 将当前日期转换为字符串,格式为"星期 月 日 年 HH:mm:ss 时区"toTimeString() - 将当前时间转换为字符串,格式为"HH:mm:ss 时区"toUTCString() - 将当前日期转换为UTC时间格式的字符串。原创 2023-04-24 15:16:38 · 4573 阅读 · 0 评论 -
Object的常用方法,点赞收藏,肯定用得到
【代码】Object的常用方法。原创 2023-04-24 14:48:40 · 814 阅读 · 0 评论 -
new FormData 的详细使用方法
FormData是一个用于处理表单数据的API,它可以通过JavaScript来创建一个FormData对象,然后将表单数据添加到该对象中。原创 2023-04-24 14:41:26 · 2581 阅读 · 0 评论 -
ios版本太低,new Date()会出现兼容问题
【代码】ios版本太低,new Date()会出现兼容问题。原创 2023-04-21 11:21:51 · 920 阅读 · 0 评论 -
将元素定位到可视区域
将元素定位到可视区域原创 2022-06-07 10:59:50 · 525 阅读 · 0 评论 -
如何获取元素与当前可视区域顶部的距离
获取当前元素距离可视区域四周的距离原创 2022-06-07 10:32:53 · 2568 阅读 · 0 评论 -
正则手机号相关处理
function testPhone(phone){ let a = /^[1][3,4,5,7,8][0-9]{9}$/; return a.test(phone);}if(!testPhone('*********')){ alert('您的手机号码不正确,请重新填写!'); return false;}脱敏之后 123****4567判断是否手机号 let a = /^([1]\d{2})\*+(\d{4})$/; let b = '13原创 2022-03-14 17:08:49 · 320 阅读 · 0 评论 -
封装一个精准判断类型的工具函数
转载文章 https://juejin.cn/post/7071835861213528078typeof 可以判断除了 null 以外的基础数据类型,但是判断引用类型时,除了 function 类型,其他的无法准确判断。instanceof 可以准确地判断各种引用类型,但是不能正确判断原始数据类型。Object.prototype.toString调用该方法,统一返回格式 [object Xxx]的字符串,用来表示该对象。// 直接调用Object.prototype.toString({原创 2022-03-07 09:44:12 · 321 阅读 · 0 评论 -
replace(/正则/,function(v,v2,v3){})栗子看规律
var b = '640rem';var c = b.toString() .replace(/rem/g, function (v, v2, v3) { console.log(v,v2,v3); // v---rem v2---3 v3---640rem return v; }) var b = '640px'; var d = b.toString() .replace原创 2022-02-23 15:30:41 · 621 阅读 · 0 评论 -
call()、apply() 和 bind()
call() 和 apply() 作用类似,call() 和 apply() 方法的区别在于其传递参数的格式不同,一个是参数列表,一个是数组。func.call(thisArg, arg1, arg2, ...)func.apply(thisArg, [arg1, arg2, ...]) 传递参数并非 call() 和 apply() 真正的用武之地;它们真正强大的地方是能够扩充函数赖以运行的作用域,来个栗子 let v1 = { name: 'xxx' }; le原创 2021-12-17 16:45:37 · 510 阅读 · 0 评论 -
audio播放遇到的问题
audio标签在播放加载播放的时候 一定要有用户的交互 不然不会生效 // 当用户对页面进行点击操作的时候 就有了交互 const audioPlay = (val) => { let playPromise = document.getElementById(val).play(); // 加下面这个可以正常播放 if (playPromise !== undefined) { playPromise .then(f原创 2021-12-02 17:06:50 · 551 阅读 · 0 评论 -
移动端监听滑动事件
// 监听滑动事件 let startPosition = {}, deltaY = 0, endPosition = {}; document.addEventListener('touchstart', touchFunc, false); document.addEventListener('touchmove', touchFunc, false); document.addEventListener('touchend', touch...原创 2021-12-02 16:10:49 · 2120 阅读 · 0 评论 -
JS 的 &、|、^和~(逻辑位运算符)
“&”运算符“|”运算符“^”运算符“~”运算符转载 2021-11-04 10:29:28 · 390 阅读 · 0 评论 -
常见的Object.assign()、Object.key()、Object.values()、Object.entries()的用法
Object.assign()该方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。语法:Object.assign(target,…sources)参数说明:target:目标对象。…sources:源对象。返回值:目标对象。例子:var a = { name: "lisa", age: 12, color: "red"};var c = Object.assign({ address: "beijing" }, a);console.log(c转载 2021-11-03 14:58:06 · 1364 阅读 · 0 评论 -
正则式用变量值定义的方法
正则式用变量值定义的方法如reg是正则要替换的内容,var ch = "aaa";var reg = "/"+ch+"/ig";var str = 'aaa bbb ccc aaa aaa';var val = str.replace(reg,"");alert(val);用eval转义,你现在reg是一个字符串正确写法<script>var ch = "aaa";var reg = "/"+ch+"/ig";var str = 'aaa bbb ccc aaa aaa原创 2021-10-25 11:14:50 · 315 阅读 · 0 评论 -
bigInt数据类型 很长的整数相加
简述BigInt数据类型提供了一种方法来表示大于2^53-1的整数。BigInt可以表示任意大的整数BigInt构造函数传递给BigInt()的参数将自动转换为BigInt:// 参数只能是整数 整数字符串 布尔值 其他会报错BigInt('2'); // → 2nBigInt(2); // → 2nBigInt(true); // → 1nBigInt(false); // → 0n相加:BigInt(2)+1; // 报错BigInt(2)+1n; // 3nBigInt原创 2021-10-21 15:52:50 · 608 阅读 · 0 评论 -
vue---百度地图实现定位功能
先在index.html引入 <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=你申请的ak"></script> 1. 注:百度地图引用报错(A parser-blocking, cross site (i.e. different eTLD+1) script, http://api.map.baidu.com/getsc), 解决方法: <原创 2021-09-24 14:57:07 · 1184 阅读 · 0 评论 -
前端上传一个大文件,分成小份处理,一份份传给后端
import api from '@/api';//切割大文件function cutFile(file, cutSize) { //分成多少份 let count = (file.size / cutSize) | 0, fileArr = []; for (let i = 0; i < count; i++) { fileArr.push({ name: file.name + '.part' + (i + 1), file: file.sl原创 2021-09-22 16:27:33 · 458 阅读 · 0 评论 -
后端接口返回二进制流 ,前端如何下载
二进制流接收首先需要接收后端传过来的二进制流。默认情况下axios不会处理二进制数据,即请求可以正常被浏览器接收,但是axios不会去处理。需要在请求的时候设置responseType: 'blob’才可以,代码如下:封装的:export const downloadFile = (data) => request.post('/test', data, { responseType: 'blob' });或者:axios.get({ url: 'xxxxxx', meth原创 2021-09-02 11:06:47 · 1678 阅读 · 0 评论 -
区间获取随机整数
/** * 获取区间随机整数 * @param {Number} min 最小整数 * @param {Number} max 最大整数 * @returns 随机整数 */export function randomInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min;}原创 2021-08-23 15:04:05 · 169 阅读 · 0 评论 -
如何使用Javascript判断单、多张图片加载完成?
单张图片(图片动态生成)//js var logo = new Image(); logo.src = 'https://mstcdn.oss-cn-shenzhen.aliyuncs.com/images/logo/javascript-logo.png'; logo.onload = function(){ // 加载完成 };单张图片(结合ES6 Promise)//js new Promise((resolve, reject)=>{ let logo =原创 2021-08-02 14:51:19 · 347 阅读 · 0 评论 -
js遍历查找数组中最大值与最小值的方法
第一种 使用for循环<script> // 查找数组中最小值function mathMin(arr){ var min = arr[0]; for(var i = 1; i < arr.length; i++) { if(arr[i] < min) { min = arrs[i]; } } return min;}// 代码测试var test = [2,4,5,6,7,0,9,10,15,1];console.log(m原创 2021-07-27 15:31:13 · 3708 阅读 · 1 评论 -
拿到对象数组并且根据对象属性查找特定对象时,用 Array.find 简写
const data = [ { type: "test1", name: "abc", }, { type: "test2", name: "cde", }, { type: "test1", name: "fgh", },];正常写法 :function findtest1(name) { for (let i = 0; i < data.length; ++i) { if (data[i].type =原创 2021-07-27 15:09:27 · 256 阅读 · 0 评论 -
console.dir()的用法
console.log()方法可以打印输出结果而console.dir()方法可以在控制台显示指定javascript对象的属性。打印出该对象的所有属性和属性值.转载 2021-07-23 15:13:53 · 3980 阅读 · 1 评论 -
数组乱序、数组去重
一、数组乱序function shuffle(arr) { // 1.随机找一个元素与最后一个元素交换 // 2.随机找一个除最后一个元素的元素与最后一个元素交换 // 3.以此类推 let len = arr.length; while (len) { const randomIndex = Math.floor(Math.random() * len--); // 交换 let temp = arr[randomI转载 2021-07-22 10:17:00 · 326 阅读 · 0 评论 -
手写防抖、节流函数
防抖:短时间大量触发同一事件,只执行一次函数,实现延迟执行。节流:节流即每隔一个时间间隔,执行一次任务(多次触发只执行一次)。防抖:// 防抖function debounce(fn, delay = 300) { //默认300毫秒 let timer; return function () { const args = arguments; if (timer) { clearTimeout(timer); } timer = setTi转载 2021-07-22 09:51:24 · 375 阅读 · 0 评论 -
深拷贝的三种方式
深拷贝:拷贝值;浅拷贝: 拷贝地址深拷贝的方法JSON 对象: JSON.parse(JSON.stringify(a)) // a 只能是扁平对象 //不能拷贝 function,会直接丢弃//如果只有一级属性,则就是深拷贝//如果一级属性里面有引用数据类型,则这个只是浅拷贝了Object.assign(target,source): Object.assign({},a)/* for in 递归拷贝会将 原型上的属性方法全部拷贝过来 */for in 递归拷贝:原创 2021-07-21 17:37:06 · 198 阅读 · 0 评论 -
用户信息脱敏处理
举例: 123456789 => 123***789const changeName = (val) =>{ if(val){ if(val.length){ const len = val.length if(len === 1){ return '*'; }else if(len === 2){ return val[0] + '*'; }else if(len === 3){ re转载 2021-07-06 10:58:24 · 1498 阅读 · 0 评论 -
vue-quill-editor富文本编辑器使用
vue-quill-editor github地址:https://github.com/surmon-china/vue-quill-editor官方文档地址:https://www.npmjs.com/package/vue-quill-editor作者:RealHumans链接:https://www.jianshu.com/p/a6cba69d6e49转载 2021-05-24 10:28:14 · 201 阅读 · 0 评论 -
js滚动加载
//监听滚动时间window.onscroll = function () { // 获取滚动的内容实际高度(包括超出可视窗的溢出部分) var scrollHeight = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight); //获取滚动条滚动的距离 var scrollTop = window.pageYO原创 2021-05-17 10:54:44 · 2089 阅读 · 2 评论 -
JavaScript对象的基本常识和函数的arguments属性
JS就定义了一个对象数据结构 允许使用 key: value 作为一组键值对对象可以有多个 key : value 对组成对象: 是一组k:v对的集合每一组 k : v 对,叫做对象的属性k表示对象的属性名 v表示对象的属性值。每一组 k:v 对,使用逗号隔开,推荐一行一个 k:v 对k最好符合变量的命名规范(不符合命名规范的话,要给K加上双引号,加了双引号,怎么写K都行)v是具体的数据,可以是任何类型的数据。如何创建原创 2021-03-11 15:26:43 · 186 阅读 · 0 评论 -
一篇关于FormData表单对象的使用方法
//先通过FormData构造函数创建一个空对象var formdata=new FormData();//可以通过append()方法来追加数据,append()方法在末尾追加key为name值为xiaowang的数据formdata.append("name","xiaowang");//通过get方法对值进行读取formdata.get("name");// xiaowang//通过set方法对值进行设置formdata.set("name","laowang");console转载 2021-03-11 08:29:09 · 292 阅读 · 0 评论 -
JavaScript数组常用方法(1)
isArray()方法。这个方法主要用来判断变量是否是一个js数组。 //isArray()方法。这个方法主要用来判断变量是否是一个js数组 let arr = [1,2,3,4,5,6]; console.log(Array.isArray(arr));//--->返回一个布尔值 trueforEach()方法,这个方法主要用于遍历数组。 <script> let arr = [1,2,3,4,5,6];原创 2021-03-07 18:36:15 · 918 阅读 · 0 评论 -
敏感字过滤方法
// str 是用户输入的字符串 filterArray 是敏感字字库export function commentFilter(str, filterArray = STATIC_WORDS.sen_words) { if (str === '') { return '文本不能为空'; } if (str.length > 300) { return '最多支持300字'; } if (!str.search(/^([a-zA-Z]{1,})$/)) {原创 2021-03-07 17:18:37 · 349 阅读 · 0 评论 -
YYYY-MM-DD hh:mm:ss 时间格式转换
/**/根据传入的格式 ,以(YYYY-MM-DD hh:mm:ss,区分大小写)返回日期**export function transformDate(long, format) {format = format ? format : ‘YYYY-MM-DD hh:mm:ss’;let mode = ‘’;const date = new Date(/\D/.test(long) ? long : parseInt(long));const year = date.getFullYear();原创 2021-03-07 09:24:06 · 4105 阅读 · 0 评论 -
年 - 月 - 日 小时 : 分钟 : 秒 (例:2021-01-01 00:00:00 ) 的时间转换格式
格式化日期 格式为:年 - 月 - 日 小时 :分钟 :秒 (2021-01-01 00:00:00) const queryGetDateFunc = (day) => { let date = new Date(day); let Y = date.getFullYear(); let M = date.getMonth() + 1 > 9 ? date.getMonth() : '0' + date.getMonth();...原创 2021-03-07 14:50:37 · 4282 阅读 · 0 评论
分享