自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 前端面试问题汇总 - 其他问题

前端面试常见问题汇总。本篇主要收录一些较为细碎的问题。

2024-04-13 00:22:38 983

原创 前端面试问题汇总 - 工程管理工具篇

前端面试常见问题汇总,工程管理工具篇主要针对工程化项目开发中常见的问题汇总。

2024-04-13 00:18:39 540

原创 前端面试问题汇总 - 浏览器篇

前端面试常见问题汇总,浏览器篇主要针对浏览器相关的一些常见问题极其原理进行编辑汇总

2024-04-13 00:13:35 615

原创 前端面试问题汇总 - HTTP篇

前端面试常见问题汇总,HTTP篇主要针对http请求相关的常见问题进行编辑汇总。

2024-04-12 23:55:25 736

原创 前端面试问题汇总 - Vue篇

前端面试常见问题汇总,Vue篇主要针对Vue中的常见问题进行编辑汇总。

2024-04-12 23:52:52 781

原创 前端面试问题汇总 - ES6篇

前端面试常见问题汇总,ES6篇主要针对ES6中的常见问题进行编辑汇总。

2024-04-12 23:45:35 665

原创 前端面试问题汇总 - JS篇

前端面试常见问题汇总,JS篇主要涵盖JS中常用的解决方案以及一些常见的概念问题

2024-04-12 23:41:44 673

原创 前端面试问题汇总 - 基础篇

前端面试常见问题汇总,基础篇主要涵盖HTML一些常用的布局和基础设置相关的问题

2024-04-12 23:37:21 318

原创 关于睡眠排序的小尝试

睡眠排序,也称为硬件排序,是一种充分利用硬件计时器的资源来实现的拟态算法。JavaScript 中,基本原理就是通过设置多个计时器(setTimeout),每个计时器的唤醒时间与数组各项的值各相对应。计时器唤醒时,便执行对应值的输出,最终完成对数组的排序。

2022-01-11 11:21:25 446

原创 CSS 中文字体格式

font-family华文新魏:STXinwei 华文行楷:STXingkai 华文隶书:STLiti 华文琥珀:STHupo 华文彩云:STCaiyun 方正姚体:FZYaoti 方正舒体:FZShuTi 华文仿宋:STFangsong 华文中宋:STZhongsong 华文宋体:STSong 华文楷体:STKaiti 华文细黑:STXihei 隶书:LiSu 幼圆:YouYuan 微软雅黑体:MicrosoftYaHei 微軟正黑體:MicrosoftJhengHei

2021-09-29 15:04:28 644

原创 图片等比缩放方案

方法 1:设置最大宽高 + autoimg { width: auto; max-width: 400px; height: auto; max-height: 225px;}如果,此时图片存在父级,并且希望图片以等比缩放的形式,最大的填充在父级块中,也可以通过将 max-width、max-height 设置为 100% 来实现:img { max-width: 100%; max-height: 100%;}方法 2:设置背景属性

2021-09-14 09:56:29 972

原创 纯CSS实现垂直水平居中的几种方法

方法 1:table-cell<div class="container"> <div class="inner">Azer</div></div>.container { display: table-cell; vertical-align: middle; text-align: center;}方法 2:flex 布局.container { display: flex; jus

2021-09-14 09:32:40 158

原创 简单的时间格式化转换

const dateFormat = (date, format = 'YYYY-MM-DD hh:mm:ss') => { try { if (!date) return date = new Date(date) // 判定输入值是否可转换为日期 if (isNaN(date.getTime())) { console.log(date) return null .

2021-08-30 16:51:26 183

原创 CSS 中的冷门属性收录

声明: 本篇作用在于收录一些不常用,但又能有效处理一些不常见问题的 CSS 属性,以便遇到一些问题时,能及时查找使用。

2021-08-23 15:57:15 570 2

原创 鼠标事件穿透遮挡层

pointer-events: none

2021-08-23 15:47:36 426

原创 文件真实类型判断:判定文件是否为图片

文件buffer读取函数const readBuffer = (file, start = 0, end = 2) => { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = () => { resolve(reader.result); }; reader.

2021-08-06 16:10:20 605

原创 Promise 实现文件串行上传请求

// input multiple 多文件上传let files = []const upload = file => { return (resolve, reject)=> { return new Promise((resolve, reject)=>{ // 文件上传操作 }) }}let waitingQueue = []files.forEach(file => { wait.

2021-08-06 15:56:45 382

原创 移动端浏览器中触发app打开/下载

handleDownload() { let ua = window.navigator.userAgent if (!!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) { // ios端 // 触发app启动 const appName = 'app的软件名,需要跟商店中参数一致' window.location.href = `${ appName }://openApp` .

2021-07-22 16:21:35 850

原创 关于 Vue 自定义按钮组件 $emit(‘click‘) 一次触发两次的问题总结

子组件<template> <button :class="['yt-button', ClassOfType, ClassOfSize]" @click="$emit('click')"> <slot></slot> </button></template><script>export default { name: "YtButton", props: {

2021-06-30 14:14:58 6426 2

原创 JavaScript try catch 获取错误信息

try { // do something} catch(err) { console.log(err) // do something while error}err 对象的属性说明:message:错误提示信息 fileName:表示出错代码所在文件 lineNumber:出错代码所在行数 stack: 出错堆栈信息 name:异常对象名/类型...

2021-06-25 16:34:34 2834

原创 Sortable.js 多层嵌套拖动排序

<div class="tree"> <div class="node"> <span class="node-title">node 1</span> <div class="node-children"> <div class="node"> <span class="node-title">node 1.1</spa.

2021-06-16 16:03:37 5267 1

原创 原生函数添加、删除DOM类名

添加类名HTMLElement.prototype.addClassName = function (className) { if (!className) return const el = this const classNames = el.className.split(' ').filter(i => !!i) if (!classNames.includes(className)) { classNames.push(classNam

2021-06-16 13:53:26 183

原创 统计文段中英语单词数量

网上找到的方案function wordCalculate(words) { if (words) { // 1.复制副本 let value = words // 2.将中文字符替换为空格 value = value.replace(/[\u4e00-\u9fa5]+/g, " "); // 3.将换行符,前后空格去除 value = value.replace(/\n|\r|^\s+|\s+$/

2021-06-10 14:45:19 459

原创 html2canvas 生成图片偏移出现白边的解决方案

说明最近开发时,遇到需要将 html 页面生成图片并下载的情况。因为之前就有接触过 html2canvas 这个工具库,所以就直接使用了。一开始,只是先做功能的实现,也就没太在意。但后边随着功能完善,开始测试时,发现每次截图时生成的图片都会有白边,而且白边的大小和位置会随着窗口的改变而出现较为明显的变动。于是,在网上各种查找 html2canvas 处理白边的方案,并做了尝试,但很显然,都不能很好的解决,白边的问题依旧存在。后来,在重新测试的时候,发觉白边问题的本质是目标内容出现了偏移,

2021-05-19 18:12:40 3753 3

原创 关于 Element-ui Dialog 引用时,在弹窗上 mousedown 后再在遮罩层 mouseup 引发的意外弹窗关闭问题的处理方案

问题:Element-UI 作为当前较为成熟的 Vue 框架的 UI 组件,能有效的提高特异性不强的项目的界面开发。但是,作为一个要兼备处理多方面问题的第三方库,Element-UI 也存在着一些问题。比如 <el-dialog>。在引用 <el-dialog> 时,尤其是将其作为编辑弹窗时,常常会有一个问题,便是在使用鼠标滑动选取弹窗中做文本选择时,若不注意将光标滑到弹窗窗体之外的遮罩层处,此时松开鼠标,就会导致弹窗被关闭掉的现象,十分影响使用体验。当然,这种情况也有一

2020-11-27 17:41:25 1457 3

原创 H5+CSS3 背景图毛玻璃效果实现方案

方案一、<img> + filter: blur()<div class="container"> <img class="background" src="./image/index.png"></div><style> .background { width: 100px; height: auto; filter: blur(20px); }</styl

2020-11-17 23:57:50 1953 1

原创 大前端 - Vue-Router

编程式导航// 将新的路由推入 history 中,history.length + 1this.$router.push()// 用新的路由替换掉当前 histroy 中的末尾项this.$router.replace()// 在 history 数组中,前进回退// + 前进 - 后退this.$router.go(-1)hash 模式URL中带有 # 标识,如:https://music.163.com/#/playlist?id=202 URL 中 .

2020-08-06 15:34:11 128

原创 大前端 - 打包工具

概要需求背景新特性代码编译,将具备新特性的代码编译成能够兼容低版本环境的代码,如 ES6 => ES 5 模块化 JavaScript 打包 支持不同类型的资源模块本质解决的是前端整体的模块化,并不单指 JavaScript 模块化功能模块打包器(Module Bundler) 解决模块 JS 打包问题 可以将零散的 JS 代码整合打包到一个 JS 文件中 模块加载器(Loader) 对于存在兼容问题的代码,可以通过引入对应的解析编译模块进行编译 代码拆分

2020-08-06 15:14:06 231

原创 大前端 - ES Modules

特性通过给 script 添加 type="module" 的属性,就可以以 ES Module 的标准执行其中的 JS 代码 ESM 自动采用严格模式,忽略 “use strict” 每个 ES Module 都是运行在单独的私有作用域中 ESM 是通过 CORS 的方式请求外部的 JS 模块的 ESM 的 script 标签会延迟执行脚本,不会阻滞页面的渲染导入导出 // 导出 module.jsvar name = 'foo module'function =

2020-08-06 14:42:49 214

原创 大前端 - Webpack

概述本质JavaScript 应用程序的静态模块打包器核心加载器(Loader)机制工作流程配置初始化 webpack 会首先读取配置文件,执行默认配置 编译前准备 webpack 会实例化 compiler,注册 plugins、resolverFactory、hooks。 reslove 前准备 webpack 实例化 compilation、NormalModuleFactory 和 ContextModuleFactory reslove 流程解析文件的路径信息以及 i

2020-08-05 18:04:09 214

原创 大前端 - 前端脚手架工具

脚手架工具本质作用创建项目基础结构 提供项目构建任务 提供项目规范、约定意义减少重复性的工作,不需要复制其他项目再删除无关代码,或者从零创建一个项目和文件 可以根据交互动态生成项目结构和配置文件 多人协作更为方便,不需要把文件传来传去常用脚手架工具 脚手架 作用 create-react-app 创建 React 项目 vue-cli 创建 Vue 项目

2020-08-04 18:46:34 374

原创 大前端 - 关于项目工程化

定义工程化是根据业务特点,将前端开发流程规范化,标准化,它包括了开发流程,技术选型,代码规范,构建发布等,用于提升前端工程师的开发效率和代码质量。作用制定各项规范,编码规范,开发流程规范,前后端接口规范等等 使用版本控制工具 git,commit描述规范 使用合适前端技术和框架,提高生产效率,降低维护难度,采用模块化,组件化,数据分离等 代码可测试,单元测试,端到端测试等 开发部署自动化意义减少重复性的工作,不需要复制其他项目再删除无关代码,或者从零创建一个项目和文件。 可以根据

2020-08-04 18:02:17 208

原创 前端路 - JavaScript 性能优化

浏览器内存管理基本概念JavaScript 中垃圾的定义内存 由可读写的单元组成,表示一片可操作空间 JS 中的内存空间在变量定义时自动分配,无法人为指定明确大小 管理:认为的去操控一片空间的申请、使用和释放 内存管理:开发者主动申请空间、使用空间、释放空间 管理流程:申请 => 使用 => 释放 不再被引用的对象 不能从根上访问到的对象(非可达对象) 程序中不再需要使用的对象 程序中不能再访问到的对象JavaScript 中可达对象的定义可以访问到

2020-08-04 17:11:26 107

原创 前端路 - JavaScript 中的数据类型校验

类型系统相关介绍类型安全强类型 语言层面限制函数的实参类型必须与形参类型相同 语言中不允许任意的隐式类型转换 弱类型 语言层面不会限制实参的类型 语言中允许任意的隐式类型转换 类型检查静态类型 声明时,变量的类型便是明确的 声明后,变量的类型就不允许再修改 动态类型 在运行阶段,才能够明确类型变量 变量的类型可以随时发生变化 可理解为,动态类型的变量是没有类型的,而变量的值是有类型的 强类型语言优势错误更早暴露 代码更智能,编码更准确 重构

2020-07-27 11:26:55 541

原创 前端路 - ES6

作用域ES6 在全局作用域、局部作用域外,新增了一个块级作用域。在 { } 中使用 let / const 则会形成块级作用域,在 “块” 外层不能获取到 “块” 中的变量。在 for 循环中,for 的条件语句中声明的参数与其执行语句中声明的参数之间互相不影响,互相独立。可视为 for 循环中嵌套了两层作用域。for (let i = 0; i < 3; i++) { let i = 'Azer'; console.log(i);}// Azer Azer Azer

2020-07-27 10:44:45 141

原创 前端路 - 手打实现 Promise

分析Promise 就是一个类,在执行这个类时,需要传递一个执行器进去,执行器会立即执行 Promise 有三种状态 pending 等待 fulfilled 成功 rejected 失败 Promise 状态变化只能有两种情况: pending > fulfilled pending > rejected 状态一旦确定就不可再更改 resolve() 和 reject() 用于更改状态 resolve:fulfilled reject:rejecte

2020-07-27 00:36:20 108

原创 前端路 - JavaScript 中的异步编程方案

Promise 方案误区在一个 Promise 的回调中调用另一个 Promise,即 Promise 的嵌套调用,形成了回调地狱。promise().then(res => { promise().then(re => { promise().then(r => {}) })})链式调用Promise 对象的 then 方法会返回一个全新的 Promise 对象 后边的 then 方法就是在为上一个 then 返回的 Promis

2020-07-27 00:28:44 106

原创 前端路 - JavaScript 函数式编程

高阶函数JavaScript 的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。高阶函数可以用来抽象通用的问题,让我们可以只关注于我们需要实现的目标。函数作为参数function forEach (array, fn) { for (let i = 0; i < array.length; i++) { fn(array[i]) }}function filter (array,

2020-07-23 11:20:48 186

前端面试常见问题规整.pdf

文件中总结归纳了诸多前端在面试时常见问题。 针对于每一个问题,都有详细的解答以及对应的原理分析。 同时,对不同类型的问题进行了分组归纳。 其中,包含了基础问题、JS问题、ES6问题、Vue问题等多个分组,可以直接依据分组找到相关的问题。 后续可能持续更新。

2024-04-13

告白利器 - 动画爱心表白信

背景随机生成爱心气球,爱心超出边界后会自动移除,避免占用内存。同时,会生成新的随机爱心。 支持初始随机爱心数量(务必注意性能问题)。 支持文段自由输入。 默认文段:希望着,未来的每一天醒来时,都有你一起面对朝阳或阴雨;期望着,未来的每一天结束时,都有你一起走过夕阳或清风;期盼着,未来的每一天入睡前,都有你一起欣赏明月或繁星。

2022-05-24

纯 JS 实现手风琴效果相册

通过 ES6 Class 实现风琴相册效果。 纯 JS 处理样式,无需分别引入 JS 和 CSS 文件。 通过传入父级 DOM 元素 id 进行绑定。 开发相册容器宽高配置,若未手动进行配置,则默认以传入的父级 DOM 的宽高为准。 传入的图片,默认以容器高度为准,等比例进行缩放。

2022-04-27

空空如也

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

TA关注的人

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