- 博客(165)
- 收藏
- 关注
原创 JavaScript XHR、Fetch
什么是HTTP呢?超文本传输协议(英语:HyperTextTransfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议; HTTP是万维网的数据通信的基础,设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法; 通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识;。
2023-01-30 15:27:30 800 1
原创 Tomcat配置详解
<-- server.xml详解 --><?xml version="1.0" encoding="UTF-8"?><!--代表整个Servlet容器组件,是最顶层元素。它里面可以有多个Service标签--><Server port="8005" shutdown="SHUTDOWN"> <!--Tomcat运行所需的监听器--> <!--默认的生命周期监听器:在server初始化之前打印操作系统、JVM及服务器的版本
2022-01-08 22:19:13 525
原创 前端导出excel
import * as R from 'ramda'import XLSX from 'xlsx'import XLSXS from 'xlsx-style'import FileSaver from 'file-saver' batchExport() { if (this.checkList.length === 0) { this.$message.error('请选择要导出的数据!') return } const
2021-12-23 15:03:01 595
原创 egg文件上传下载
<el-upload :before-upload="beforeUpload" :before-remove="beforeRemove" :on-success="handleSuccess" :on-preview="download" :file-list="filelist" accept=".sh,....
2021-11-26 17:16:55 622
原创 node使用ssh2
import { Client } from 'ssh2';const shellCmd = 'cd /xxxx/xxxx/ xxxx/ sh xx.shell';const conn = new Client();conn.on('ready', async() => { // 准备就绪 const readyMsg = `++++++++Client :: ready: ${ip} ++++++++`; conn.exec(shellCmd, async (err
2021-11-19 16:46:15 2714
原创 JS按字节计算字符串长度,按字节截取字符串
/** * 按字节计算字符串长度 * @param bytes 字节数 * @returns */ String.prototype.byteLength = function(){ var len = 0; for ( var i = 0; i < this.length; i++) { //UTF8编码一个中文按3个字节算(GBK编码一个中文按2个字节) len += (this.charCodeAt(i) >
2021-11-16 10:30:31 557
原创 面向对象编程
什么是面向对象对象、类、实例JS本身就是基于面向对象研发出来的编程语言:内置类数据类型DOM元素自定义类function People(name) { this.name = }let a = People('男人') // 普通函数执行let b = new People('女人') // new 函数执行会创建一个基于类的实例对象new 关键字的执行过程:1、创建一个实例对象,改变其原型链使其指向类的原型2、改变函数的this使其指向这个实例3、函数执行4、如果
2021-08-08 20:28:03 246
原创 NodeJs初识
Node是什么?Node解决了什么问题?Node核心特点时间驱动 node的api是基于事件的 、异步的Node采用的是单线程,进程(主线程) node可以开启对个进程不适合cup密集型 适合i/o密集型
2021-08-03 18:12:47 141
原创 nodeJs实现文件上传
import * as fs from 'fs';import * as path from 'path';import * as fse from 'fs-extra';import * as uuidv4 from 'uuid/v4'; /** * @description: 上传简历 * @param {type} * @return: */ async upload() { const { ctx } = this; try { //
2021-08-03 10:48:50 1418
原创 nodej实现Excel解析上传、导出
import * as R from 'ramda';const XLSX = require('xlsx');/*** @description: 下载模板* @param {*}* @return {*}*/ async download() { const options = { '!cols': [ { wpx: 140 }, { wpx: 140 }, { wpx: 140 }, { wpx: 14
2021-07-08 14:14:22 356
原创 element-ui Select 选择器 滚动加载 (vue 指令)
定义自定义指令import Vue from 'vue'let MyPlugin = {}// 定义全局指令export default MyPlugin.install = function(vue, options) { // loadmore 是定义的指令 名称 , 使用时 用 v-loadmore = "dosomethingFun or data" Vue.directive('loadmore', { // bind只调用一次,指令第一次绑定到元素时调用。在这里可以进
2021-06-08 14:06:40 1095
原创 SQL语言
初识SQLDCL (Data Control Language) 访问控制任务一:建立程序使用的数据库账号CREATE USER 用户名@访问控制列表(决定用户可以使用那些客户端访问)by 密码 ....其他参数可通过 help create user 来查看任务二:给账号授权GRANT 权限1,权限2,权限3 ON <对象> <权限级别> TO <用户>可通过show privileges 命令查看权限列表任务三:回收用户权限REVO
2021-05-30 23:25:46 387
原创 SQL语言——DML(Data Manipulation langauge) 数据操作语句
SQL语言——DML(Data Manipulation langauge) 数据操作语句任务一:向表中写入数据// 格式一:INSERT INTO tablename(column1,column2...)VALUES (value1,value2,...), (value1,value2,...),...;// 格式二:不用指定字段名称,但是value值需与表字段严格对应.INSERT INTO tablename VALUES('lisa','2003-02-01','3000',2);
2021-05-30 23:24:36 512
原创 SQL语言——DDL (Data Definition language) 数据库定义语言
DDL (Data Definition language) 数据库定义语言建立、修改、删除数据库 ccreate database 、alter database、drop database 任务一:建立数据库imc_db任务二:建立数据库imc_db中的表// 创建表 CREATE TABLE table_name(column_name1 data_type(size),column_name2 data_type(size),column_name3 data_typ
2021-05-30 18:51:37 376 2
原创 SQL语言——DCL (Data Control Language) 访问控制
DCL (Data Control Language) 访问控制任务一:建立程序使用的数据库账号CREATE USER 用户名@访问控制列表(决定用户可以使用那些客户端访问)by 密码 ....其他参数可通过 help create user 来查看任务二:给账号授权GRANT 权限1,权限2,权限3 ON <对象> <权限级别> TO <用户>可通过show privileges 命令查看权限列表任务三:回收用户权限REVOKE 权限1,
2021-05-30 18:49:08 169
原创 数据库结构设计N部曲
数据库结构设计业务分析根据具体业务分析出其属性具有哪些,我们以慕课网为例:逻辑设计宽表模式就是把一个对象的属性全部存储到一个表中宽表模式存在的问题在这里插入图片描述宽表的适用场景配合列存储的数据报表应用数据库设计规范...
2021-05-24 16:28:09 103 2
原创 数据库
SQL VS NOSQL关系型数据库的特点数据结构化存储在二维表中支持事务的原子性、一致性、隔离性、持久性的特性支持使用SQL语言对存储在其中的数据进行操作关系型数据库的适用场景数据之间存在着一定关系,需要关联查询数据的场景需要事务支持的业务场景需要使用SQL语言灵活操作数据的场景非关系型数据库的特点存储结构灵活,没有固定的结构对事务的支持比较弱,但对数据的并发处理性能高大多数不是使用SQL语言来操作数据非关系型数据库的适用场景数据结构不固定的场景对事务要求
2021-05-06 14:30:28 157
原创 JS树结构操作:查找、遍历、筛选、树结构和列表结构相互转换
JS树结构操作:查找、遍历、筛选、树结构和列表结构相互转换经常有同学问树结构的相关操作,在这里总结一下JS树形结构一些操作的实现思路,并给出了简洁易懂的代码实现。本文内容结构大概如下:遍历树结构1. 树结构介绍JS中树结构一般是类似于这样的结构:let tree = [ { id: '1', title: '节点1', children: [ { id: '1-1', title: '节点1-1' },
2021-04-08 23:43:51 5305
原创 (js) 封装dialog模态框插件
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0"> <!-- IMPORT CSS
2021-04-06 23:36:06 651
原创 (jq)封装jQuery树形插件
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>zTree树形结构菜单</title> <!-- import css --> <link rel="stylesheet" href="css/reset.min.css"> <style> * { -webkit-user-select: none; }
2021-04-06 22:51:43 390
原创 (js)拖拽
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Do
2021-04-06 00:52:58 88
原创 Element--简单的二次封装tree组件
<template> <div class="about"> <myTree :data.sync="data" :fileDrop="fileDrop" :diectoryDrop="diectoryDrop" :del="del"></myTree> </div></template><script>import myTree from '../components/myTree.vue'expo
2021-04-06 00:47:52 400
原创 二进制、字符编码、字符集
首先我们要明白,在计算机中存储的信息都是用二进制表示的字节字节(Byte ) 是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位,也表示一些计算机编程语言中的数据类型和语言字符。1B(byte,字节)= 8 bit1KB=1024B1MB=1024KB1GB=1024MB= 1,073,741,824B1TB=1024GB数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(.
2021-04-01 18:38:26 797
转载 vue脚手架创建项目时的 linter / formatter 配置选择
1、ESLint with error prevention only只配置使用 ESLint 官网的推荐规则这些规则在这里 添加链接描述2、ESLint + Airbnb config使用 ESLint 官网推荐的规则 + Airbnb 第三方的配置Airbnb 的规则在这里 添加链接描述3、ESLint + Standard config使用 ESLint 官网推荐的规则 + Standard 第三方的配置Standard 的规则在这里 添加链接描述4、ESLint + Pretti
2021-03-01 14:34:34 20404
原创 Typescript学习
你好 Typescript: 进入类型的世界安装 TypescriptTypescript 官网地址: https://www.typescriptlang.org/zh/使用 nvm 来管理 node 版本: https://github.com/nvm-sh/nvm安装 Typescript:npm install -g typescript使用 tsc 全局命令:// 查看 tsc 版本tsc -v// 编译 ts 文件tsc fileName.ts原始数据类型Typesc
2021-03-01 01:47:34 990
原创 vue3语法
vue3创建Vue实例Vue3使用API一律是函数式风格所以和new告别了。// Vue3.0import {createApp} from 'vue'createApp(App).use(router).use(store).mount('#app')// Vue2.0import Vue from 'vue'new Vue({ router, store, render: h => h(App)}).$mount('#app')其他的区别全局// vue2
2021-03-01 01:46:05 929
原创 【Hexo】使用Hexo+github pages+travis ci 实现自动化部署
【Hexo】使用Hexo+github pages+travis ci 实现自动化部署
2021-02-08 10:54:32 158
原创 一名【合格】的前端工程师的自检清单
###一、JavaScript基础变量和类型1.JavaScript规定了几种数据类型?String、Number、Boolean、Null、undefined、Symbol、Object2.JavaScript对象的底层数据结构是什么?js基本类型数据都是直接按值存储在栈中的,每种类型的数据占用的内存空间的大小是确定的,并由系统自动分配和自动释放。这样带来的好处就是,内存可以及时得到回收,相对于堆来说 ,更加容易管理内存空间。js引用类型数据被存储于堆中 。其实,说存储于堆中,也不太准确
2021-02-08 10:36:11 153
原创 自己实现Promise
new MyPromise((resolve, reject) => { reject('ERROR');}).then(result => {console.log(result)})最基本的Promise (没有数显then链)class MyPromise { constructor(executor) { // 每一个PROMISE实例都有一个状态和结果属性 this.status = 'pending'; this.value = undefined
2021-01-26 00:43:35 116
原创 async和await的简单使用
ES7提供了Promise的语法糖 async/awaitasync 是让一个普通函数返回的结果变为status=resolved并且value=return结果的Promise实例async 最只要的作用是配合await使用的,因为一旦在函数中使用await,那么必须当前函数必须使用async修饰async function fn(){ return 2}fn().then((resolve)=>{ console.log(resolve) // 2})let p1 =
2021-01-25 17:41:46 267
原创 Promise简单使用
PromisePromise出现为了解决什么问题?Promise出现时为了解决异步请求中的回调地域问题:它是一种设计模式,ES6中提供的内置类Promise,实现了这种模式。一个 Promise 对象代表一个在这个 promise 被创建出来时不一定已知的值。它让您能够把异步操作最终的成功返回值或者失败原因和相应的处理程序关联起来。 这样使得异步方法可以像同步方法那样返回值:异步方法并不会立即返回最终的值,而是会返回一个 promise,以便在未来某个时候把值交给使用者。一个 Promise
2021-01-25 16:59:00 475 1
原创 flex:1 到底代表什么?
最近面试,面试官问道让说一下flex的属性;突然发现不知道,只是经常的写flex:1;查阅资料后来记录一下代码第一版<div class="container"> <div class="div">我是一个div</div> <div class="div">我是一个很多字div</div> <div class="div">我是一个更多字而且第三个div</div></div><sty
2021-01-19 15:55:48 3947
原创 compose函数实现函数调用扁平化
let fn1 = function (x) { return x + 10; }; let fn2 = function (x) { return x * 10; }; let fn3 = function (x) { return x / 10; }; console.log(fn3(fn1(fn2(fn1(5))))); //=> ((5+10)*10+10)/10 => 16 编写compose函数实现调用扁平化 funct..
2021-01-06 10:25:35 140
原创 柯里化函数思想
柯里化这个词一看就感觉高大上,实际当你了解后才发现其实就是高阶函数的一个特殊用法柯里化是什么?柯里化 Currying ,就是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。做个简单示例:// 普通的add函数function add(x, y) { return x + y}// Currying后function curryingAdd(x) { return function (y) {.
2021-01-04 15:18:34 168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人