自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 2021-10-19

2021-12-10 01:03:36 302

原创 Error: for..in loops iterate over the entire prototype chain

ESLint报错: for…in loops iterate over the entire prototype chain, which is virtually never what you want.原因for…in会遍历整个原型链,可能会出现我们不想遍历到的属性,例如class A { constructor() { this.a = 'va' }};A.prototype.todo = () => 'todo';let a = new A();for(let

2021-06-15 10:38:58 586 1

原创 JavaScript简单实现DOM元素拖拽

主要是使用了event.pageX和dom.getBoundingClientRect属性和方法HTML<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=devic

2021-03-21 10:44:14 326

原创 简单实现JQuery选择器

$作为选择器时,可能出现的三种情况<body> <h2>这是一个标题</h2> <p>这是一个段落。</p> <p>这是另一个段落。</p> <button>点我</button> <script> console.log($()) // init {} console.log($("em")) /* init [prevObject: init(1),

2021-03-02 17:05:54 235

原创 JavaScript函数柯里化

什么是函数柯里化百度百科:在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。从上面这段话中,我们可以获取以下信息点柯里化(currying)函数接收一个函数作为参数柯里化函数返回一个新函数返回的新函数接收余下参数且返回结果根据上面的信息,我们可以先写出柯里化函数的简单骨架// 接受一个函数作为参数(fn)function currying(fn) { // 返回一个

2021-02-24 23:41:23 155

原创 JavaScript中的Array.prototype.forEach()方法(简介+重写)

forEach()简介forEach() 方法按升序为数组中含有效值的每一项执行一次 callback 函数,那些已删除或者未初始化的项将被跳过(例如在稀疏数组上)。forEach是ES6新增的Array内置方法,它可以遍历js数组,并为其中的每个元素都执行特定的回调函数。forEach方法接受两个参数callback: 第一个参数是一个回调函数,该回调函数接收三个参数item: 当前遍历到的数组元素index(可选): 当前遍历到的索引array(可选): 当前数组本身th

2021-02-23 23:49:00 822

原创 vue组件的props属性

VUE组件的props属性vue组件可以通过props属性来从父组件获取值props属性可以有以下几种写法// 数组写法props: ['title', 'content', 'like']// 对象写法 - 1props: { title: String, // 指定title的类型,设置title只能是String类型的 content: undefine, // undefine和null表示content可以是任何类型的 like: [String, Numbe

2021-02-04 23:59:43 2404

原创 Web性能优化之——图片懒加载(lazyload)

一、什么是图片懒加载图片懒加载,就是图片延迟加载。只加载页面可视区域上的图片,等滚动到页面下面时,再加载对应视口上的图片二、懒加载的实现图片的懒加载可以通过以下三个步骤实现一开始不给img元素的src属性赋值,这样就不会加载图片元素了当img元素出现在用户的浏览器视窗上,就给img的src属性赋值,加载图片通过防抖函数减少用户反复滚动页面造成的性能浪费如下图所示在实现图片懒加载之前,我们需要先了解几个函数或属性1、window.innerHeightwindow.innerHe

2020-12-26 23:34:42 868 1

原创 echarts图表的label换行显示

echarts中labeld的文字如果过长,就会出现下图中的效果我们可以先试着通过设置文字 倾斜 来解决问题var option = { tooltip: { trigger: 'axis', }, toolbox: { feature: { dataView: {show: true, readOnly: false}, magicType: {show: true, type: ['line', 'bar']}, restore: {show: tr

2020-12-16 23:46:00 5212 1

原创 JavaScript实现深拷贝

JavaScript实现深拷贝1. JSON.parse(JSON.stringify())对于简单的对象或数组,使用 JSON.parse(JSON.stringify(obj) 即可实现深拷贝,但如果被拷贝对象中存在函数或正则表达式,深拷贝就无法完成了。JSON.parse() 可以将字符串解析为对象,而 JSON.stringify() 会将对象转化为json格式的字符串,但是这两个过程都存在着一些问题执行下面的代码let obj = { a: 1, o: { username:

2020-12-06 13:11:39 208

原创 Uncaught TypeError: Property description must be an object

报错用Object.defineProperties定义属性时报错: Uncaught TypeError: Property description must be an object: m解决这里的defineProperties应该改为definePropertydefineProperty 和 defineProperties 的区别Object.defineProperty该方法会直接在一个对象上定义 一个 新属性,或者修改一个对象的现有属性该方法有 三个 参数 Object.

2020-08-20 12:46:54 3990

原创 return axios中的网络请求结果

今天修复一个bug,需要先通过axios获取用户数据,再根据获取到的数据是否为空,判断用户是否存在。但在这个过程里出现了一个问题。// 判断用户是否存在if(isUserExits(this.userId)) { console.log('进行操作') console.log(isUserExits(this.userID)) // --- 结果是 undefined}// isUserExits方法methods: { isUserExits(userId) { Axios

2020-07-07 22:14:31 1519 2

原创 Vuex中的mutations属性

一、什么是mutationsMutation的中文翻译是“突变”,在Vuex中,它是store对象的一个属性,mutations被用于更新store中所存放的所有状态。关于mutations,有以下几点需要注意更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。通过this.$store.state来直接修改store中的状态也是有效的,但这种方式的修改无法被Vue的调试工具所记录,因此不推荐使用这种方法通常情况下,Vuex要求我们的mutation中的方法必须是同步方法,

2020-05-28 21:57:08 4081

Vue + VueX + VueRouter 实现简单音乐播放器

Vue + VueX + VueRouter 实现简单音乐播放器

2021-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除