- 博客(109)
- 收藏
- 关注
原创 js 两个对象怎么对比是否相同
• 简单数据 → JSON.stringify• 生产环境复杂对象 → lodash.isEqual• 高频次性能敏感场景 → fast-deep-equal• 特殊需求(如不可变数据) → 手写递归 + 定制逻辑。
2025-03-07 19:01:00
297
原创 js 常用的几种 图片下载的功能总结
几种常用的图片下载及会遇到的问题1、同源路径直接用a标签+download 属性:<a href="https://baidu.com" download="百度.jpg">下载</>或者用blob文件流的形式:// 获取图片文件流download (row) { const imgUrl = row.fileUrl let xhr = new XMLHttpRequest() xhr.open('get', imgUrl, true) // 至关重要
2022-03-30 22:20:28
1502
原创 vue -- 页面过多热更新加载过慢解决方案
解决方案:babel-plugin-dynamic-import-node安装:npm install babel-plugin-dynamic-import-node --save-dev使用配置:1、如果你使用的是:.babelrc就在.babelrc文件中添加:2、如果你使用的是:babel.config.js修改文件module.exports = { presets: [ '@vue/app' ], env: { development: { plugins
2021-09-01 15:23:15
2255
原创 根据id找节点
场景:给出一个节点树,根据id找出对应的节点节点树:let tree = { id: 1, children: [ { id: 2, children: [ {id: 3}, { id: 5, children: [ {id: 6} ] }, null ] }, { id: 4 }, null ]}// 写一个方法function getNode(root, id) {/
2021-08-05 12:19:19
855
原创 一个简单的抽奖函数
假定场景:写一个方法,返回 1,2,3,4 表示四种奖品,这四种奖品的概率分别是 5%,15%,25%,55%;思路,利用Math.random()的随机数,然后将四种奖品填满一个100长度的数组容器中,随机抽取;上代码:function getReward() { let arr1 = new Array(5).fill(1); let arr2 = new Array(15).fill(2); let arr3 = new Array(25).fill(3); let arr4 = new
2021-08-05 09:26:08
582
原创 axios请求-- 取消上一次的请求
问题场景:很多时候,我们的提交按钮联系点好多次,或者我们的change事件联系触发好多次,但是可能有的请求返回错误,有的有数据,接着,在接口请求超时或者是返回成功的时候,就会出现页面上可能一直在弹出请求失败的消息,而下拉中缺有数据的尴尬请求。为了解决这个问题,我们需要对axios进行处理:引入axiosimport axios from 'axios'; const CancelToken = axios.CancelToken;在全局先定义一个cancle变量window.cancle=nu
2021-08-02 11:33:19
887
原创 async、await、Promise、setTimeout执行顺序
先看一段代码: async function a2() { console.log(3) } async function a1() { console.log(1) await a2(); console.log(2); } console.log(4) a1() setTimeout(()=> { console.log(5) }) new Promise((resolve, reject)=>{ console.log
2021-07-28 11:21:27
151
原创 2020-08-12
import { axios } from '@/utils/request'/** file:文件对象*/function upFile (file) { const fileList = [ file] const formData = new FormData() fileList.foreach(file => { formData.append('file',file ) }) axios({ url:url, method: 'post',
2020-08-12 19:51:42
126
原创 递归--由子级寻找父级
/** arr原始数组;orgCode:子级code* this.orgCodeList:存放获取的数据* 主要思想就用递归的方式来循环原始数组*/getOrgCode (arr, orgCode) { for(let i= 0; i < arr.length; i++) { const item = arr[i] if (!orgCode) { return false } else if (item.orgCode === orgCode) { this.org
2020-06-04 17:53:22
1960
原创 vue 刷新 当前页面
场景页面需要重置刷新的地方刷新当前页有可以采用一下3种方式1、window.location.reload()是原生JS提供的方法,整个浏览器进行了重新加载,闪烁,体验不好2、this.$router.go(0)是vue路由里面的一种方法,整个浏览器进行了重新加载,闪烁,体验不好3、通过路由跳转的方法刷新,具体思路是点击按钮跳转一个空白页,然后再马上跳回来4、provide / i...
2019-11-27 15:20:11
191
原创 js 数组扁平化 总结
数组扁平化的几种方法本文是从网上找来的大佬文章,作了些许总结,方便用时调用,参考来源定义一个数组 const arr = [1, [2, 3, [4,[5,6,[7,8,[9,0]]]]]]一、ES6 给出的 flat() 和 flatMap()es6数组方法flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默...
2019-09-23 16:34:30
316
转载 两种勉强可以获取js 顶层对象的方法,适用于浏览器/nodejs/webworker
浏览器里面,顶层对象是window,但 Node 和 Web Worker 没有window。浏览器和 Web Worker 里面,self也指向顶层对象,但是 Node 没有self。Node 里面,顶层对象是global,但其他环境都不支持。方法一:var getGlobal = function () { if (typeof self !== 'undefined') { r...
2019-05-30 15:33:48
542
原创 小程序mpvue中flyio的使用
Fly.js 一个基于Promise的、强大的、支持多种JavaScript运行时的http请求库. 有了它,您可以使用一份http请求代码在浏览器、微信小程序、Weex、Node、React Native、快应用中都能正常运行。同时可以方便配合主流前端框架 ,最大可能的实现 Write Once Run Everywhere。本文主要介绍一下如何在微信小程序中使用flyio的配置。npm安装:...
2019-05-23 17:44:19
1234
原创 读取excel文件内容,vue+element封装的一个组件
准备:1、引入elementUI(安装详见官网);2、引入插件js-xlsx(安装:npm install xlsx --save )3、import XLSX from ‘xlsx’<template> <div> <input ref="excel-upload-input" class="excel-upload-input" type="f...
2019-04-25 10:15:33
756
原创 前端导出数据(需要有一个数据流)
这里用的是后台传的一个数据流,利用new Blob()来导出数据:postOrderExportList(obj).then(res => { if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, '订单.xls'); } else { ...
2019-04-24 19:38:27
939
原创 es6 find操作三级联动
目的:根据code["200000", "200000", "200001"]翻译省市区中文名这是原始的翻译参照json:const options = [ { value: '200000', label: '上海', children: [ { value: '200000', label: '上海', ...
2019-04-20 16:56:13
451
原创 vue ant-design table转译数据
利用 customRender这个数据来处理<template> <a-table :columns="columns" :dataSource="list" > </a-table></template><script>export default { name: "Financi...
2019-04-18 19:23:06
3857
4
原创 vue-cli3中,使用mock模拟数据的配置
1、在根目录下创建一个mock文件夹,用来存放模拟数据json文件;2、在根目录中找到vue.config.js这个文件,修改为下面的配置:const mockdata = require('./mock/test.json');module.exports={ devServer: { port:4000, before(app){ app.get('/g...
2019-04-16 09:43:45
1618
转载 纯CSS实现垂直居中的几种方法
垂直居中是布局中十分常见的效果之一,为实现良好的兼容性,PC端实现垂直居中的方法一般是通过绝对定位,table-cell,负边距等方法。有了css3,针对移动端的垂直居中就更加多样化。html结构:<div class="box box1"> <span>垂直居中</span></div>方法1:table-cell.bo...
2019-03-28 22:18:35
122
转载 js实现图片上传并预览功能
中心步骤:(1)首先需要定义好一个,src为空或者是默认图片,(2)如果src为空,就给定义好的img设置为透明:opacity:0;如果不是透明的话,会显示一个图片的标志,不美观。(3)点击上传图片后,获取上传的图片的src,将它赋值给事先定义好的,再给设置opacity:1;方法一:html代码:<div id="imgPreview"> <div id="pr...
2019-03-20 11:44:59
6007
原创 js 对比json数据
原理:利用递归遍历对比,遇到不相等就return false;/** 对比两个json数据* @param:obj1* @param:obj2* @return */function compreObj(obj1, obj2) { var flag = true; function compre(obj1, obj2) { if (Object.key...
2018-12-24 14:44:00
4688
原创 JS 调用函数内部的函数(可以这样的理解:通过一个函数可以调用另一个函数的内部函数)
可用两种方法实现:1、实例化函数为对象;2、闭包返回内部值。一、实例化函数为对象/** 创建函数--面向对象*/var objfn = function() { this.a = function(arg){console.log(arg);} this.b = function(arg){console.log(arg+1);} } /*创建实例*/var fn = n...
2018-12-22 15:47:37
17701
转载 PHP 常用的header头部定义汇总
<?phpheader('HTTP/1.1 200 OK'); // ok 正常访问header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在header('HTTP/1.1 301 Moved Permanently'); //设置地址被永久的重定向 301header('Location: http://www.ithhc.cn/'); //跳...
2018-12-09 16:46:04
218
1
原创 自定义扩展js函数库---string.replaceAll()---字符替换所有指定字符
/* * 自定义扩展js函数库 * @time:181203 * @add : string.replaceAll()---字符替换所有指定字符 *//* * string.replaceAll()---字符替换所有指定字符 * @parameter: FindText--原文本要替换值 * @parameter: RepText--将要替换值 */String.prot...
2018-12-03 13:50:22
574
原创 js 写自定义回调函数callback
第一种形式:/** 构造回调函数* @param:p1* @param:callback 回调函数*/function testfn(p1 ,callback) { console.log('调用第一次函数-->'+p1); if(callback){ callback(p1); }}//回调函数function testcallback(p){ consol...
2018-11-17 23:04:13
4619
1
原创 js中文按首字母排序
var array = ['武汉', '北京', '上海', '天津','','am','pam','1213','123'];var resultArray = array.sort( function compareFunction(param1, param2) { return param1.localeCompare(param2,"zh"); });...
2018-11-05 16:46:26
10757
2
原创 判断浏览器是否支持placeholder属性
//判断浏览器是否支持placeholder属性function isSupportPlaceholder() { var input = document.createElement('input'); return 'placeholder' in input;}如果支持,返回true,否认在false;运用:// 如果不支持placeholder,用jQuery来...
2018-10-17 10:03:28
518
原创 css优化滚动条默认样式
css样式:.inner{ width: 265px; height: 400px; position: absolute; top: 33px; left: 13px; /*cursor: pointer;*/ overflow...
2018-10-11 11:30:14
662
原创 js 文件下载/上传 进度条
/** * 下载文件 - 带进度监控 * @param url: 文件请求路径 * @param params: 请求参数 * @param name: 保存的文件名 * @param progress: 进度处理回调函数 * @param success: 下载完成回调函数 * eg: progressDownLoad({url:'http://loacalhost:...
2018-10-10 17:29:07
4583
原创 获取 鼠标左键选中的文本
if (window.getSelection) {//一般浏览器 userSelection = window.getSelection();} else if (document.selection) {//IE浏览器、Opera userSelection = document.selection.createRange();}userSelection=userSelect...
2018-09-26 14:26:31
2396
原创 php字符代表意思
php字符代表意思:“\0” — NULL “\t” — 制表符 “\n” — 换行 “\x0B” — 垂直制表符 “\r” — 回车 ” ” — 空格
2018-07-16 11:23:28
512
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人