js
luxiaopengyou
这个作者很懒,什么都没留下…
展开
-
前端常用算法
前端常用算法原创 2023-01-18 15:27:12 · 239 阅读 · 0 评论 -
js原型链相关
function Cat(name, color) { this.name = name;}var cat1 = new Cat('大毛', '黄色');Cat.prototype.type = '猫科动物';console.log(Cat.prototype.isPrototypeOf(cat1)); //trueconsole.log(cat1.hasOwnProperty('name')); //trueconsole.log(cat1.hasOwnProperty('type'));原创 2021-05-10 13:16:48 · 70 阅读 · 0 评论 -
js的===比较及react hook的memo使用
如以下代码所示:1、b是对a的引用,两者都是指向同一个地址,所以首先输出true2、b修改了key,也就是修改了那个地址上的内容,但是地址没变,所以a还是===b。let a = { value: 1 };let b = a;console.log(b === a);b.value = 2;console.log(b === a);结论===比较的是地址拓展1、react hook的memo比较的是preProp和curProp的某个对象getTextLen,这个对象只要地址没变,原创 2021-04-22 11:39:55 · 179 阅读 · 0 评论 -
20210406前端算法与数据结构笔记
浏览器缓存淘汰策略 LRU(Least Recently Used)说明:根据数据的历史访问记录来进行淘汰数据,其核心思想是 如果数据最近被访问过,那么将来被访问的几率也更高 ,优先淘汰最近没有被访问到的数据。VUE的keep-alive就是用该算法实现过程:1、用了cache 对象用于保存缓存的组件实例及 key 值,keys 数组用于保存缓存组件的 key;2、判断缓存中是否已缓存了该实例,缓存了则直接获取,并调整 key 在 keys 中的位置(移除 keys 中 key ,并放入 key原创 2021-04-06 16:10:48 · 76 阅读 · 0 评论 -
js简单的防抖动 有待研究
function debounce(fn, delay) { var timer return function (...arg) { timer && clearTimeout(timer) timer = setTimeout(() => { fn.apply(this, arg) clearTimeout(timer) }, delay) }}原创 2021-02-25 10:48:36 · 69 阅读 · 0 评论 -
js设计模式之单例模式
let instance = null;class mySingleton { constructor() { this.a = "haha"; if (!instance) instance = this; return instance; } publicMethod() { console.log("publicMethod"); }}let singleton1 = new mySingleton();let singleton2 = new原创 2021-02-08 11:18:43 · 64 阅读 · 0 评论 -
执行npm报错:Allocation failed - JavaScript heap out of memory
1、在目录node_modules/.bin下打开ng.cmd和ngc.cmd文件,添加 --max_old_space_size=40962、npm install -g increase-memory-limit 执行npx cross-env LIMIT=4096 increase-memory-limit个人实践:第2种方法用过后还是不成功,用第1种方法可以了,所以不知道到底第2种方法安装的插件是否有影响,先记录一下。...原创 2021-01-20 10:54:25 · 966 阅读 · 0 评论 -
js将多文件打包成zip下载
import FileSaver from "file-saver";import JSZip from "jszip";var DownLoad = function(data, fileName) { let zip = new JSZip(); data.forEach(item => { //文件内容为.json let content = JSON.stringify(item.jsonData, null, 2); // 实例化Blob对象,并传入原创 2021-01-14 21:25:56 · 3221 阅读 · 0 评论 -
vscode的settings.json文件中tsx、jsx使得prettier生效
如图所示,vscode中使得prettier插件对jsx、tsx文件生效的配置之一【需要在settings.json添加如下语句,并且项目根目录中配置.prettierrc文件】原创 2021-01-06 09:45:32 · 3162 阅读 · 0 评论 -
基于vue init webpack项目引入svg
转自 https://www.cnblogs.com/shenyf/p/10370949.html【note】 基于vue init webpack创建的项目1、安装依赖npm install svg-sprite-loader --save-dev2、配置build文件夹中的webpack.base.conf.js,主要在两个地方添加代码,如下图所示exclude: [resolve('src/icons')],{ test: /\.svg$/, loade原创 2020-10-30 09:40:27 · 191 阅读 · 0 评论 -
前端之:Vue学习记录(持续更新)
(1)子组件用props接收父组件传过来的参数,type:[ Array, String ] 可以指定多种接收类型(2)子组件里用this.$attrs接收没有被props显式接收的“父组件传递给子组件”的属性(3)子组件用this.$listeners接收父组件传递给子组件的方法(4)用jsx渲染(template则无法被渲染),可以用this.$childrens得到render的return中渲染的所有标签,进一步用__props获得其属性(5)<component is='dynami原创 2020-09-09 19:35:02 · 178 阅读 · 0 评论 -
关于get请求的前端axios、后端java写法
前端 Axios(){ let a = {params:{ID:"hehe"}}; let url = 'erobot/Axios/getData'; axios.get(url, a).then(res=>{ console.log(res.data); }) }后端 @RequestMapping(value="getData", method = RequestMethod.GET,produces={"原创 2020-09-30 09:23:33 · 1248 阅读 · 1 评论 -
vue用axios封装request
在这里插入代码片``import axios from 'axios';import { MessageBox, Message } from 'element-ui';import store from '@/store';import { getToken } from '@/utils/auth';import { getBlobAsText } from '@/utils/commonFun';// create an axios instanceconst service = ax原创 2020-09-28 16:29:27 · 508 阅读 · 0 评论 -
JS中await、async、宏任务、微任务的执行顺序
宏任务和微任务1、宏任务和微任务都是队列(先进先出),宏任务有script、setTimeout、setInterval等,微任务有Promise.then/ catch/finally、process.nextTick等。2、一个宏任务执行完,判断是否有可执行的微任务,有则执行完所有微任务,否则执行下一个宏任务。async和await1、async修饰符:async修饰的函数,默认返回 new Promise对象的resolve内容(若被async修饰的函数无返回值,则最终无返回值)。如此调用原创 2020-09-28 15:47:46 · 2467 阅读 · 4 评论 -
vue按需缓存页面(vue-element-admin)
一、路由文件routers.js1、代码const deviceList =() => import('@/views/device-manage/');{ path: '/device', component: Layout, name: 'Device', code: 'device', redirect: 'index', meta: { title: '设备管理', keepAlive: true, },原创 2020-09-27 17:24:48 · 4648 阅读 · 1 评论 -
ES7之:Promise
基本用法Promise构造函数接受1个异步请求方法(作为方法体),参数有2个,resolve表示请求成功后传回的数据,reject表示请求失败传回的数据。Promise实例的then方法接受2个函数,第1个函数用于处理请求成功,第2个函数用于处理请求失败,这2个函数的参数分别是请求成功返回的数据、请求失败返回的数据。...原创 2020-08-18 09:50:20 · 431 阅读 · 0 评论 -
格式——前端post请求 / 后端接收解析
引言涉及到前端JQuery发送请求,后端用 @RequestBody 注解方法参数的问题前端let lengthStr = {width:100};$.ajax({ type:'post', url:'HelloWorld/hehe', data: JSON.stringify(lengthStr), contentType:'application/json;charset=utf-8',原创 2020-08-03 17:16:55 · 1311 阅读 · 0 评论 -
堆和栈的区别
栈(stack):由编译器自动分配释放,存放函数的参数值,局部变量等;(偏向临时性)堆(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由操作系统释放。对于JavaScript来说:(1)基本数据类型存储在【栈】中,指针放在【栈】中,引用数据类型(对象)存储在【堆】中;(2)原始数据类型——直接存储在【栈】中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入【栈】中存储;(3)引用数据类型——存储在【堆】中的对象,占据空间大、大小不固定,如果存储在【栈】中,将影响程序原创 2020-06-30 10:58:08 · 3174 阅读 · 0 评论 -
react搭建项目
1、电脑安装nodejs2、cmd当中输入:(1)安装cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org(2)安装脚手架:npm install -g create-react-app / cnpm install -g create-react-app3、在项目文件夹当中打开cmd,输入create-react-app reactdemo运行项目yarn start生成项目yarn build...原创 2020-06-29 21:05:09 · 92 阅读 · 0 评论