- 博客(37)
- 收藏
- 关注

原创 手写Promise,实现then,finally, all, resolve,reject,allSettled功能
手写promise这次的博客就是这么干,赋值粘贴就能运行。使用守则和注意事项建议把代码复制到本地编辑器查看。创建一个html文档,在html文档里的script里面引入KPromise模块注意要把script的type=‘module’,并且需要在本地起服务打开,否则不能引入KPromise模块创建一个名为KPrimise.js的文件,把下面的js代码赋值粘贴。html文件<script type='module'>import KPromise from './KPro
2021-01-25 20:44:29
731
1

原创 axios原理及使用
一、什么是axios?axios是一个基于Promise的方法,并且前后端都可以使用。二、axios的内部原理1.有一个Axios方法,它有一个interceptors对象,这个对象有一个request对象和response对象,所以,我们外部可以调用axios.interceptors.request.use().2.interceptors对象里面的request对象和response对象,他们是一个用来管理拦截器的数组(handlers)。interceptors对象提供了一个use方法,当我
2020-11-27 14:29:50
10406
2
原创 海明码的定义和作用
海明码(Hamming Code)是一种具有纠错功能的编码方式,由美国数学家理查德·海明(Richard Hamming)在1950年提出。它的主要作用是在数据传输或存储过程中,能够检测并纠正一定数量的错误,提高数据的可靠性。海明码通过在原始数据位中插入一些校验位,利用这些校验位来检测和定位错误。
2025-02-23 10:52:40
822
原创 prototype 和 __proto__的区别
prototype和__proto__都是 JavaScript 原型链机制的一部分,但它们的用途和用法是不同的。
2024-07-05 19:23:38
615
原创 CSS对行级元素的影响
常见的行级元素包括<span>、<a>(链接)、<em>(强调)、<strong>(加粗)、<img>(图片,但默认是行级块元素)、<del>(删除线)等。行级元素的margin(外边距)和padding(内边距)属性在垂直方向上(上下)通常无效,但在水平方向上(左右)可以生效。设置行级元素的width和height属性通常无效,除非该元素被转换为行级块元素(inline-block)或块级元素。垂直方向的margin和padding不会影响行级元素的高度,但可能会影响到元素之间的间距或元素的定位。
2024-07-03 15:36:41
371
原创 CSS中几种常用的清除浮动的方法
在CSS中,浮动元素(使用float属性的元素)会脱离正常的文档流,这有时会导致父元素无法正确包裹其浮动子元素,从而产生布局问题。为了解决这个问题,我们需要清除浮动。
2024-06-18 21:08:08
598
1
原创 如何日期增加月数
前序最近在做一个会员续费月数的项目,没有找到数据库操作api,那咱只能自己写了。。。开整在看MDN文档的时候,意外瞧见了setMonth 这个api,它能让我们任意修改时间戳的月份,并且大于12,它就自动年份增加,这。。。不是巧了嘛~很开心,那就发个微博吧~// 第二个参数,可以从指定时间戳开始增加月份,默认从今天开始const addMonth = (months, timeStamp = Date.now()) => { // 用lodash库来判断一下是不是日期更好。
2022-02-12 10:54:09
1035
原创 commitizen + husky规范
husky + commitizen 规范git commit提交安装husky官网 https://typicode.github.io/husky/#/?id=yarn-2npm install husky --save-dev # 安装npx husky install npm set-script prepare "husky install"创建钩子pre-commit 勾子npx husky add .husky/pre-commit "npm test"
2021-06-25 12:30:29
456
原创 vue实现图片上传功能
一、vue的核心插件vuexvuex用于集中存储管理应用的所有组件的状态(state),在一个项目的开发过程中,如果一些值或者方法被多个组件频繁的使用,就把这些值或者方法定义在vuex中,便于组件的调用。vue-router这是一个Vue的官方路由器,让构建单页面应用变得十分简单。二、服务器代理配置当向服务器发送请求的时候,可以对请求进行处理后再发送,可以在vue.config.js中进行配置module.exports = { devServer: { pro
2020-11-27 14:28:59
4805
vue组件间的数据使用
一、父子组件通信props/$emitApp.vue<template> <div id="app"> <Bar></Bar> </div></template>import Bar from './template/Bar'Bar.vue<template> <Foo title='Foo to Bar' @getMessage='handleMessage'><
2020-11-25 16:19:31
221
原创 chrome拓展程序devtool
chrome拓展程序devtool步骤git clone https://github.com/vuejs/vue-devtools用gitbash clone该项目cd vue-devtoolsnpm i安装依赖包npm run build解压包找到vue-devtools > shells > chrome打开Chrome浏览器 > 选择更多工具 > 扩展程序 > 打开开发者模式把第5步找到的chrome文件拖入到扩展程序界面启动项目文件,找到Vue
2020-11-25 14:44:51
244
原创 git基本操作
git基本操作一、创建项目1.创建项目文件夹2.创建git仓库3.添加文件到仓库二、检查状态三、更改文件四、暂存更改五、提交六、git日志七、设置别名八、获取旧版本九、给版本打标签十、撤销更改十一、从分支移除提交十二、删除标签十三、修正提交十四、移动文件十五、创建分支十六、切换分支十七、查看所有分支十八、合并分支十九、解决冲突二十、克隆远程仓库二十一、查看克隆仓库信息二十二、远程分支二十三、获取远程仓库的更改二十四、添加跟踪的分支一、创建项目使用git init 初始化当前git仓库1.创建项目文件夹
2020-11-22 19:50:56
731
2
原创 vue学习
一、全局注册和局部注册<div id='app'></div><script> const Bar = { template: ` <h1>im 局部 bar</h1> ` } Vue.component('Foo', { components: { Bar }, template: ` <h1>im Foo <Bar></Bar> </h1&g
2020-11-17 21:35:55
192
原创 前后端交互-ajax控制上传文件
前后端交互-ajax利用ajax来解决验证用户名问题针对ajax的详细解释onreadystatechange利用FormData来实现文件上传示例利用ajax来解决验证用户名问题ajax是: Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML)ajax的基本使用;新建XMLHttpRequest对象;let xhr = new XMLHttpRequest();配置请求参数xhr.open("get","/
2020-10-30 09:52:02
548
原创 nodejs设置静态文件
目录app.jsconst Koa = require('koa')const fs = require('fs')const Router = require('@koa/router')// 调用静态文件需要用到的工具const staticCache = require('koa-static-cache')const app = new Koa()const router = new Router()let content = ''app.use( staticCache('.
2020-10-26 16:12:17
1036
原创 安装MySQL
链接: MySQL下载地址.打开安装包点击 我的电脑, 右键菜单,选择管理找到MySQL80,右键,根据需求选择停止服务还是启动服务
2020-10-26 13:37:27
116
原创 模板引擎
模板引擎一、模板引擎是什么?二、pug模板引擎1. 安装插件2. 注释3. 转意4. 定义变量5. 使用变量6. 循环判断- 方法一:each in- 方法二: for- 方法三: case when7. 混入- 混入模块及使用-混入类函数及使用8. include三、nunjucks模板引擎1. 下载插件2. 注释3. 判断语句4. 循环语句5. 过滤器6. 宏标签7. import 文件里的macro部分8. include 引入其它文件9. extends 继承模板一、模板引擎是什么?模板引擎是
2020-10-23 19:47:42
760
原创 nodejs笔记
一、nodejs创建服务器index.js文件// require是node内置的方法const http = require('http')const server = http.createServer((req, res) => { res.write('hello world111222') res.end()})// 设置端口号server.listen(3000) 终端⇒ node index.js打开localhost:3000即可访问或者下载nodemon可
2020-10-22 21:06:20
539
原创 编辑器运行nodemon报错:系统上禁止运行脚本解决方案
HBuilderX运行nodemon报错:系统上禁止运行脚本解决方案如下报错:1. 管理员权限打开HBuilderX2. get-ExecutionPolicy3. set-ExecutionPolicy RemoteSigned4. get-ExecutionPolicy这一步可省略,仅用于查看是否配置成功5.成功啦!!...
2020-10-22 19:32:47
756
原创 环境变量配置
环境变量配置有的时候下载了应用,但是终端提示找不到该命令,这个时候就需要配置环境变量。示例:下载了node.js,但是终端不能使用node命令找到电脑点击它的属性找到高级系统设置找到环境变量找到Path ⇒ 编辑新建,添加你下载node.js的文件的地址即可...
2020-10-21 11:26:15
116
原创 如何把项目上传至github
如何把项目上传至github一、提交项目其它指令二、生成密钥并设置密钥远程仓库地址不匹配解决方案一、提交项目打开git-bash,cd到当前项目文件‘git add . ’ ⇒ 把所有项目添加到暂存区'git commit ‘ ⇒提交到仓库 i ⇒ 写入提交描述 ⇒ esc : wq退出,冒号不要忘记其它指令git status ⇒ 查看git状态git log ⇒ 查看摘要git checkout ⇒ 撤销工作区内容git reset ⇒ 撤销暂存区域git rm ⇒
2020-10-21 10:52:39
182
原创 js贪吃蛇
想起不来之前在哪里看到过这个贪吃蛇代码,这里做一下笔记。<!DOCTYPE HTML><html lang=''en'> <head> <meta charset='utf-8'> <title>document</title> <style> *{ margin: 0; padding: 0; } canvas{ background-color: black;
2020-10-18 23:46:33
123
原创 js异步操作大集合
1、为什么会有异步呢?在javascript里,同步操作遇到加载量大时就会阻塞,这时候的用户体验并不好,如果采用异步操作,就不会阻塞。而且有的时候,我们想要某一个进程在几秒后再执行,而JavaScript的工作机制是同步的,这个时候就需要用到异步操作。一般来说,加载需要时间的就需要用到异步操作。2、处理异步操作的几种方法回调(回调地狱)自定义事件promiseasync以及await以上几种方法中,虽然promise和async以及await比较常用到,但是上面两种还是需要做一下笔记,我认
2020-10-15 20:54:39
830
1
原创 画矢量图上传iconfont并使用
一、photoshop画矢量图1.获取目标图形↑2.分析该图形为一个圆并截掉一部分3.先画一个圆,选择椭圆工具,
2020-10-12 15:40:00
710
原创 js自定义组件
// 自定义组件// 1.继承html组件class myImg extends HTMLImageElement{ constructor() { super() setTimeout(() => { this.src = "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2534506313,1688529724&fm=26&gp=0.jpg" },1000) }}custom
2020-10-11 00:12:44
1109
原创 元素标签在父级元素里垂直居中方法
<div> <span>dsfjklwpdsfjklwpdsfjklwpdsfjklwpdsfjklwpdsfjklwpdsfjklwpdsfjklwpdsfjklwpdsfjklwpdsfjklwpdsfjklwpdsfjklwp</span></div>div{ width: 300px; height: 500px; border: 1px solid black; font-size: 0px; }div span{ backg
2020-10-07 23:41:57
532
原创 正则表达式
一、正则表达式创建// 1.字面量创建,//里面的默认是字符串,不能传入变量let str = '123adfj3425dda23'//let reg = /\d+/g//let arr = str.match(reg)//console.log(arr) // 123,3425, 23// 2.用构造函数创建正则,\需要用\来转义,并且里面可以传入变量//let reg2 = new RegExp('\\d+', 'g')let a = '123'let reg2 = new RegEx
2020-10-03 00:16:53
181
原创 面向对象-原型,实例,构造函数
面向对象的编程思想一、面向过程: 注重解决问题的步骤,分析问题需要的每一步,实现函数一次调用二、面向对象: 是一种程序设计思想。将数据和处理数据的程序封装到对象中。三、面向对象特性: 抽象、继承、封装、多态优点: 提高代码的复用性及可维护性。...
2020-10-01 22:45:26
164
原创 面向对象ES6-封装类
1、ES6直接获取类的静态属性和修改静态属性的值class Person{ static num = 10; constructor(){ this.myname = 'joy'; }}Person.staticNum = 20;console.log(Person.num) // 202、静态属性来统计类的实例化次数,防止污染全局class Person{ static num = 0; constructor(myname){ this.myname = myname;
2020-09-29 13:22:47
540
原创 从GitHub导入文件到gittee仓库
从GitHub导入文件到gittee仓库有的时候用git下载文件会比较慢,听老师讲使用码云gitee,亲试真的快很多,所以把使用的流程记录一下。1、找到gitee官网,注册账号2、在git终端 ssh-keygen -t rsa -C ‘xxx@xxx.com’按照提示回车之后生成ssh key,找到~/.ssh/id_rsa.pub文件内容里,全选复制3、在设置里找到SSH公钥,标题自定义,把复制内容粘贴到公钥框内4、添加后在终端ssh -T git@gitee.com提示没有建立用户
2020-09-23 14:02:21
1114
原创 scoped slot
scoped slot关于scoped slot自学关于scoped slot自学看了官方的例子,总是会报错firstName is undefined,原来不能在父级里面定义user,而是在子级里面定义user。例子如下:<current-user> <template v-slot:default='slotProps'>//这里的slotProps可以用你自己...
2019-11-07 20:22:20
1450
原创 disabling attribute inheritance
关于disabling attribute inheritance学习分享欢迎来到我的博客前序disabling attribute inheritance的官方例子解析欢迎来到我的博客你好!我叫Joy,很高兴您来到这里,这是我第一个博客的第一篇内容,以后将会更多。我学习js再到vue,都是自学的过程,在这个过程中我经常会遇到各种问题,我猜想你们也在经历这些,希望您能在这里有所收获。如果发现问...
2019-10-19 20:27:30
194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人