自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 【新项目开发】vue3+ts+elementPlus+ffmpegjs开发纯web端的视频编辑器

五一期间开发的项目总结

2023-05-07 20:34:53 3737 6

原创 缩放和滚动dom元素

有什么地方可以优化的加以指教哦,代码注释偏少。html部分代码,主要是css和父子dom。

2022-08-23 20:49:04 192

原创 子函数如何在父函数中阻止后面的执行

1、常用的办法是:根据子函数拿到的东西返到父函数里的某个变量,根据该变量在父函数里判断是否要return父函数。2、不常规办法:利用throw error和try…catch配合做到不执行后面的逻辑。

2022-08-22 17:09:18 356

原创 【算法题】比较版本号、金额的千分位展示和节流函数算法实现

1. 比较版本号说明: 实现一个方法,用于比较两个版本号(version1、version2)如果version1 > version2,返回1;如果version1 < version2,返回-1,其他情况返回0版本号规则x.y.z,xyz均为>=0的整数function compareVersion(version1, version2) { const version1Arr = version1.split('.'); const version2Arr = ver

2022-03-18 23:23:46 285

原创 【vscode】vscode常用插件介绍

1、Angular Snippets(angular片段)这个扩展为 TypeScript 和 HTML 添加了 Angular 的代码片段。2、Auto Close Tag(自动闭合标签)自动添加 HTML/XML 关闭标记。3、Auto Rename Tag(自动重命名标签)自动重命名成对的 HTML/XML 标记。3、Bracket Pair Colorizer 2 (括号对色)用于为匹配括号着色的可定制扩展,v2 使用与 VSCode 相同的括号解析引擎,大大提高了速度和准确性。

2022-03-17 21:18:06 17908

原创 【nodeJS基础】buffer、fs(文件系统)、dgram(udp数据报)和net(TCP网络模块)

1、bufferbuffer这个模块前端估计会很少涉及到,主要是因为前端所用的协议基本都是以json数据格式的http协议和websocket协议,都是应用层协议。buffer主要是二进制缓冲数据,这种数据格式是在网络缓冲中存在的数据,buffer也是一个类似数组。本文主要介绍buffer的写和读:基于node内置模块buffer的基础api方法组合构造的面向对象:buffer的写对象类:export class BufWrite { buf: Buffer; //要写数据的buffer

2022-03-15 21:49:18 2968

原创 【TypeScript】泛型介绍

泛型的作用可以创建一个或多种类型组件的类型。泛型定义的类型,用户可以根据自己的类型觉得其他泛型的类型。其实泛型就是变化的类型,也叫类型参数化,到底是什么类型由使用者决定。灵活的使用泛型定义类型,用来定义函数,接口或者类。1、函数声明例如如果没有泛型,我们要定义一个函数,需要这样定义://不用泛型时,声明一个带类型的函数function identity(arg: number): number { return arg;}// 这个类型限制了这个函数只能输入数字类型参数和返回的结果类型.

2022-03-12 23:45:55 1111

原创 【前端面试】股票买卖最大利润

题目给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。示例:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。解法一:直接循环遍历

2022-03-11 22:27:03 217

原创 【前端基础】ES6模块与单例模式

使用type=“module"属性的<script>html标签会告诉浏览器相关执行的代码是模块代码。模块代码可以直接嵌入在网页中,也可以作为外部文件引入:<script type="module"> // 模块代码</script><!-- 或者 --><script type="module" src="path/to/myModule.js"></script>注意:解析到<script type="modu

2022-03-10 16:42:14 1556

原创 【前端基础】谈谈异步函数Async和await

看两道简单异步函数题async function foo() { console.log(2); console.log(await Promise.resolve(8)); console.log(9);}async function bar() { console.log(4); console.log(await 6); console.log(7);}console.log(1);foo();console.log(3);bar();console.lo

2022-03-09 14:52:08 605

原创 【桌面软件】使用Electron+vue+ts打造一个桌面软件(包括生成安装包)

本篇技术文主要步骤是先搭建vue3+ts项目然后把electron库使用pnpm安装创建electron主进程和预先执行的文件最后配置合成项目(包括使electron主进程ts模块化,electron入口文件)第一步请看使用vite搭建vue3项目(超简单)这篇博文。...

2022-03-08 17:25:25 1564 1

原创 字节跳动前端一面

1面大概面了1个小时6分钟。主要是我话多。。。主要面的是前端基础和算法首先自我介绍谈谈let、const和var,详细博文在这:let、const和var说说基本类型和引用类型考察了一道异步和事件循环看代码回答题两道算法题1、2和3本文就不说了。第4个题目大概是这样的,问以下代码控制台输出什么?setTimeout(console.log, 0, 0);console.log(1);new Promise((resolve, reject) => { console.lo

2022-03-07 23:27:02 232

原创 【前端基础】简单易懂的Promise

promise

2022-03-06 23:28:27 791 3

原创 【TypeScript】interface和type的本质区别?

不好好看官方文档,在平时用的时会感觉typeScript中interface和type的作用好像都一样的,但其实也是有明显的差别的!面试问的时候,大脑会突然,呀一般就直接那样用就行了,到底是什么区别呢?。。。。无法说出关键点,本文主要以600字精确大概说明他们的区别,后续还会更新。1、从定义类型来说type关键字可以定义类型别名,可以表示基本类型(string、number、undefined、null、boolean、symbol)、对象类型、联合类型、元组和交集。interface关键字可以定

2022-03-05 23:54:07 576

原创 【Vue3】Vue实例API介绍

在Vue3中,使用vue中的createApp方法可以创建一个Vue应用实例。import { createApp } from "vue";const app = createApp({});console.log("🚀 ~ file: main.ts ~ line 6 ~ app", app);该app提供了一个应用实例上下文。应用实例即app挂载的整个组件树共享相同的上下文,createApp 方法返回应用实例本身,因此可以在其后链式调用其它方法。

2022-03-04 19:53:19 1708

原创 【vue3】使用vite搭建vue3项目(超简单)

使用pnpm快速创建vite+vue3项目。pnpm是一个高效的包管理工具,比npm和yarn快2倍的速度。pnpm使用内容可寻址文件系统将所有模块目录中的所有文件存储在磁盘上。如果使用npm或yarn时,项目要使用100个lodash,那么磁盘上将有100个lodash副本。使用pnpm,lodash将存储在内容可寻址存储中,原理:1.如果依赖不同版本的lodash,只有不同的文件才会被添加到store,如果lodash有100个文件,并且新版本仅对其中一个文件进行了更改,pnpm update则

2022-03-04 19:41:00 2085

原创 前端面试基础之谈谈let、const、var

本文包含变量作用域,声明变量,let、const和var有缺陷和代码风格推荐。

2022-03-03 22:37:40 394 4

原创 electron API

electron应用开发接口(API)分为6大模块:Main Process 模块、Renderer process模块、 自定义Dom元素、chromium和node.js、类和API结构。1、main process模块(主进程):app :控制应用程序的事件生命周期。autoUpdater :使应用程序能够自动更新。BrowserView (浏览器视图):browserWindow里的视图,可以嵌入更多的视图,位置相对于父窗口,相当于webview, 创建和控制视图。BrowserWind

2022-02-23 15:17:56 1844

原创 angular学习之旅

1、angular项目创建第一步:安装angular cli工具npm install -g @angular/cli第二步:使用cli工具里的cli命令,创建angular项目ng new my-app第三步:运行项目cd my-appng serve --open项目目录结构2、heros之旅1、英雄编辑器使用cli创建第二个组件HeroesComponent 把heroesComponent添加到壳组件appComponent中,以显示her.

2021-09-13 20:20:38 90

原创 用TS写一个每秒加一个毫秒时间,时间减速,利用date-fns时间库,和全局date

import { add, format } from 'date-fns';let res: string;const timeAddSeconds = (date: string, seconds: number): void => { const addDate: Date = new Date(date); let dateSeconds: number = addDate.getTime(); setInterval(() => { dateSeconds

2021-09-06 16:59:17 466

原创 TS知识点手册

1、TypeScript是什么?ts官网(https://www.typescriptlang.org/docs/handbook)原话是这样说的:TypeScript is JavaScript with syntax for types. TypeScript is a strongly typed programming language which builds on JavaScript giving you better tooling at any scale.意思是:typeSc

2021-09-06 14:41:32 4258

原创 javascript/js面向对象:原型、继承概念

1、原型的概念原型定义: 每个函数都会创建一个prototype属性,这个属性是一个对象,包含应该有特定引用类型的实例共享的属性和方法。同时呢,这个prototype属性对象又是调用构造函数创建的对象的原型。原型的特定是: 在原型上定义的属性和方法可以被对象实例共享。意思就是,在构造函数Person的原型属性写方法和属性,可以被new Person生成的实例共享。深入理解原型的本质:只要创建函数,函数就会有一个prototype属性(指向原型对象),同时,原型对象会有一个constructor属

2021-09-05 00:23:08 135

原创 react文档学习

核心概念目录1、Hello World2、JSX简介jsx是一种js的扩展语法:const element = <h1>Hello, world!</h1>;3、元素渲染元素是构成React应用的最小砖块,是创建开销极小的普通对象。React DOM 会负责更新 DOM 来与 React 元素保持一致,(注意:React 元素是不可变对象。)const element = <h1>Hello, world</h1>;仅使用 React

2021-09-03 16:59:35 135

原创 开启一个socket服务器,接受数据,解码并利用异步函数语法糖优化返回数据模块

使用async 和await ,return返回的是一个promiseimport { readTestBuffer } from './readBuf';const port = 3000// const tcpServer = (port) => {// const net = require('net');// const server = net.createServer();// server.listen(port, () => {//

2021-09-02 09:59:06 96

原创 开启一个socket服务器,接收数据,解码并利用promise返回数据模块

1、搭建socket服务器注意:这些带面都是要运行在node.js环境下import { readTestBuffer } from './ReadBuf';const port = 3000//把启动一个netServer(socket)服务封装至tcpServer函数const tcpServer = (port) => { const net = require('net'); const server = net.createServer(); server

2021-09-02 09:26:36 525

原创 文件读取基础模块---node

FileIO/** * node.js读取文件基础模块 */const fs = require('fs-extra')// const { promisify } = require('util')//out/** * readFile适用有type属性的文件单个异步读取 * @param {*} file * @returns */const readFile = (file) => { if (file.type !== 'application/jso

2021-08-26 20:45:56 67 1

原创 node.js+electron/h5 input+vue文件导入导出模块

electronFileIO.jsconst { dialog } = require('@electron/remote')import { saveFile, electronReadFile } from "./dfhFileIO";const filename = 'scene1'const data = 'hhhhhhhhhhhhh'const fileType = 'scenario'/** * 选择一个系统路径存储json数据 * @param {*} filename

2021-08-26 20:44:07 152

原创 读取Buffer(TCP传输二进制数据)数据

const buf1 = Buffer.from('buffer');buf1.toString()//bufferBuffer.from(object[, offsetOrEncoding[, length]])const obj2 = { name: 'hhh', age: 23 }console.log("???? ~ file: buffer.js ~ line 43 ~ obj2", obj2.valueOf())const bufferObj = Buffer.from(J

2021-08-26 20:36:25 585 1

空空如也

空空如也

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

TA关注的人

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