自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叽歪小Q的博客

前端学习资料笔记

  • 博客(59)
  • 收藏
  • 关注

原创 动态规划入门及经典基础算法

动态规划入门及经典基础算法(js实现)一、思想与性质二、动画规划过程三、经典模型1.线性模型2.区间模型3.树状模型四、实现的方法五、经典入门算法及代码实现1、爬楼梯2、连续子数组的最大和3、使用最小花费爬楼梯4、按摩师5、打家劫舍6、买卖股票的最佳时机一、思想与性质动态规划的核心思想是把原问题分解成子问题进行求解,也就是分治的思想。那么什么问题适合用动态规划呢?我们通过一个现实中的例子,来理解这个问题。大家可能在公司里面都有一定的组织架构,可能有高级经理、经理、总监、组长然后才是小开发,今天我们

2020-07-20 22:48:31 355

原创 七大方法实现扁平化数组

// 使用栈let toOne = function(arr) { let stack = []; let res = []; stack.push(arr); while (stack.length) { let temp = stack[stack.length - 1]; if (temp.length) { let t = temp.shift(); if (Array.isArray(

2020-06-10 21:51:53 171

原创 十大排序算法合集超详细--原理、描述、动画、源码、复杂度、稳定性分析

排序算法十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据

2020-06-10 21:51:09 280

原创 二叉树的先中后序遍历 -- 递归实现、非递归的栈实现

二叉树的遍历// 树节点对象class TreeNode { constructor(val) { this.val = val; this.left = this.right = null; }}先中后序遍历(递归)// 先序遍历let preOrder = function(root){ if(!root) return []; return [root.val].concat(preOrder(root.le

2020-06-10 21:49:31 137

原创 线性表的js实现 -- 顺序表、链表(单链表、双链表、循环链表)

线性表及其逻辑结构线性表的顺序存储结构----顺序表顺序表的基本实现C++#include <iostream>#include <stdlib.h>#define MaxSize 50using namespace std;typedef char ElemType;typedef struct SqList{ ElemType data[MaxSize]; int length;} SqList;// 初始化线性表void InitLi

2020-06-10 21:48:07 428

原创 初识数据结构、时空复杂度详细分析

什么是数据结构定义:数据结构 是指所有数据元素以及数据元素之间的关系,可以看作是相互之间存在着某种特定关系的数据元素的集合,即把数据结构看成是带结构的数据元素的集合。(逻辑结构、存储结构、数据运算)逻辑结构(数据结构):面向用户呈现集合:同属于一个集合,无其他关系线性结构:一对一,典型的是线性表。树形结构:一对多,典型的二叉树。图形结构:多对多。存储结构:面向计算机存储顺序存储结构:把逻辑上相邻的节点存储在物理位置上相邻的存储单元里,节点之间的逻辑关系由存储单元的邻接关系来体现,通

2020-06-10 21:47:23 1876

原创 webpack 基础配置指南

前言基础的配置可以分为以下几个方面: entry 、 output 、 mode 、 resolve 、 module 、 optimization 、 plugin 、 source map 、 performance 等webpack 五个核心概念Entry:指示以哪个入口起点开始打包,分析构建内部依赖图。Output:输出打包后的资源 bundles 输出到哪里去Loader:处理非 js 文件(webpack 本身只理解 js)Plugins:插件范围更广的任务。打包优化、压缩、重新定

2021-03-30 10:56:44 887

原创 webpack5在使用UglifyJsPlugin的时候报错:ERROR in *** from UglifyJs Unexpected token: punc «)» ***

webpack5在使用UglifyJsPlugin的时候报错:ERROR in *** from UglifyJs Unexpected token: punc «)» ***报错内容:> ERROR in static/js/app.5d9e92757fe3817d0429.js?t=1606910615956 from UglifyJsUnexpected token: punc «)» [static/js/app.5d9e92757fe3817d0429.js?t=16069106159

2020-12-02 20:17:00 890

原创 Visual Studio Code 常用推荐插件安装及配置详解

Visual Studio Code 常用推荐插件安装及配置详解VSCode 常用推荐插件Chinese (Simplified) Language Pack for Visual Studio Code:适用于 VS Code 的中文(简体)语言包vscode-icons:vscode 的文件、文件夹图标Atom One Dark Theme:vscode 的界面主题Auto Rename Tag:自动重命名标签的插件Auto Close Tag:自动闭合标签的插件Auto Import:

2020-10-13 14:17:57 1362

原创 Git分支管理及命名规范

Git分支管理及命名规范一、分支分类Git主分支(保留分支):master、develop主要分支:Master和Develop。前者用于正式发布,后者用于日常开发。Git辅助分支(临时分支):feature、release、fixbug除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。临时性分支主要有三种:功能(feature)分支预发布(release)分支修补bug(fixbug)分支这三种分支都属于临时性需要,使用完以后,应该删除,使得代

2020-10-10 17:56:59 1206

原创 上线部署问题之用户无法获取最新资源

项目发布新版本清理缓存获取最新资源项目背景前端vue项目,基于webpack打包构建发版问题每次修改代码构建发布到测试环境或生产环境后,存在不能获取到最新资源的情况原因-浏览器缓存用户首次访问浏览器会缓存服务器返回的静态资源,下次访问时就直接使用缓存的静态资源浏览器缓存好处:加快响应速度,减少服务访问。浏览器缓存弊端:更新资源或发布新版本时,再次访问就不会获取最新修改的静态资源。css、js等静态资源会被浏览器缓存,所以每次用户访问网页时,浏览器从缓存读取文件而不是从服务器读取文件,导

2020-09-03 15:06:56 489

原创 使用tree生成项目目录树结构

使用tree生成项目目录树结构基于node的treer全局安装:npm install -g treer使用示例:treer -e ./result.txt -i node_modules遍历到result.txt文件,忽略node_modules缺陷:格式固定,参数顺序前后顺序不可随意调换,不能选择目录层级npm详细使用文档:https://www.npmjs.com/package/treer基于node的tree-node-cli全局安装:npm install -g tree-n

2020-09-03 15:06:15 1264 2

原创 element-ui 执行 npm run build:theme 报错 Replace Autoprefixer browsers option to Browserslist config....

学习element(版本2.13.2)源码时,执行npm run build:theme,命令报错报错内容如下: Replace Autoprefixer browsers option to Browserslist config. Use browserslist key in package.json or .browserslistrc file. Using browsers option can cause errors. Browserslist config can b

2020-08-22 23:22:22 694

原创 webpack笔记09 -- js 的 eslint 语法检查及兼容性处理

webpack js 的 eslint 语法检查及兼容性处理 (GitHub)eslint 语法检查1. 下载npm i eslint eslint-loader eslint-config-airbnb-base eslint-plugin-import -D2. 使用语法检查:eslint-loader eslint注意:只检查自己的代码,第三方库不检查 exclude 排除设置检查规则:package.json 中 eslintConfig 中设置airbnb: eslint-c

2020-08-07 10:55:07 351

原创 webpack笔记08 -- css 的提取、兼容、压缩

webpack css 的提取、兼容、压缩 (GitHub)提取 css 成单独文件1. 下载npm i mini-css-extract-plugin -D2. 使用webpack.config.js:const MiniCssExtractPlugin = require('mini-css-extract-plugin')module.exports = { module: { rules: [{ test: /\.css

2020-08-07 10:54:25 145

原创 webpack笔记07 -- 开发环境配置

webpack 开发环境配置 (GitHub)下载npm i clean-webpack-plugin -D配置webpack.config.js:const path = require('path')// 构建index.html文件const HtmlWebpackPlugin = require('html-webpack-plugin')// 清理 build 目录const { CleanWebpackPlugin } = require('clean-webpack-p

2020-08-07 10:53:48 111

原创 webpack笔记06 -- devServer

webpack devServer (GitHub)开发服务器 devServer: 用来自动化(自动化编译、自动打开浏览器、自动刷新浏览器)特点: 只会在内存中打包,不会有任何输出bundle.js启动devServer指令:npx webpack-dev-server1、下载npm i webpack-dev-server -D2、使用webpack.config.jsmodule.exports = { devServer: { // 构建后

2020-08-07 10:52:14 123

原创 webpack笔记05 -- 打包其他资源

webpack 打包 其他 资源 (GitHub)1、下载npm i file-loader -D2、使用webpack.config.jsmodule.exports = { module: { rules: [{ test: /\.css$/, use: ['style-loader', 'css-loader'] }, { test: /\.

2020-08-07 10:51:06 138 1

原创 webpack笔记04 -- 打包图片资源

webpack 打包 图片 资源 (GitHub)打包图片资源1、下载npm i url-loader file-loader -D2、使用webpack.config.jsmodule.exports = { module: { rules: [{ // 处理less资源 test: /\.less$/, // 多个loader use用数组

2020-07-29 17:53:12 151

原创 webpack笔记03 -- 打包Html资源

webpack 打包 html 资源 (GitHub)1、下载npm i html-webpack-plugin -D2、引用const HtmlWebpackPlugin = require('html-webpack-plugin');3、使用webpack.config.jsmodule.exports = { plugins: [ // html-webpack-plugin // 功能:默认创建一个空的html文件,自动引入输出打包的

2020-07-29 17:50:36 114

原创 webpack笔记02 -- 打包css、less等样式资源

webpack 打包样式资源 (GitHub)打包 css 文件1、下载npm i css-loader style-loader -D2、使用webpack.config.js/* webpack配置文件 所有的构建工具都是基于nodejs平台运行 模块化默认采用commonjs*/const path = require('path')module.exports = { // 入口文件 entry: './src/index.js',

2020-07-29 17:47:13 126

原创 webpack笔记01 -- 简介、核心及初体验

webpack 简介、核心及初体验 (GitHub)webpack 简介webpack 是一种前端资源构建工具,一个静态模块打包器(module bundle)。构建工具:.less --构建–> .css ,.js(es6) --构建–> .js(浏览器认识的 js) ,.xxx --构建–> .xxx静态资源打包器:modules dependencies --引入–> chunk 块 --打包–> bundle对于 webpack,前端的所有资

2020-07-29 17:41:13 122

原创 Webpack学习笔记(官网教程)

Webpack学习笔记(官网教程)demo01 安装&起步安装全局安装项目本地安装起步创建一个 bundle 文件使用一个配置文件 webpack.config.jsNPM 脚本(NPM Scripts)demo02 管理资源加载 CSS加载图片加载字体加载数据demo03 管理输出多入口文件设定 HtmlWebpackPlugin清理 /dist 文件夹Manifestdemo04 自动编译代码的简单开发服务器(开发)使用 source map选择一个开发工具1. webpack's Watch

2020-07-26 10:39:02 204

原创 js中的!和!!

一、!的用法!null=true!undefined=true!''=true!100=false!'abc'=false二、!!的用法var a;if(a!=null&&typeof(a)!=undefined&&a!=''){ //a有内容才执行的代码 }//可简化为if(!!a){ //a有内容才执行的代码... }三、总结!!null !!undefined !!'' !!0 !!false//

2020-06-29 19:32:13 141

原创 Vuex笔记

Vuex1. state 状态数据// 方法1this.$store.state.count// 方法2computed: mapState({ // 箭头函数可使代码更简练 count: state => state.count, // 传字符串参数 'count' 等同于 `state => state.count` countAlias: 'count', // 为了能够使用 `this` 获取局部状态,必须使用常规函

2020-06-11 14:00:02 181

原创 JS数组方法

ES5 数组方法1.Array.isArray() 方法用来判断一个值是否为数组。它可以弥补typeof运算符的不足var a = [1, 2, 3];typeof a // "object"Array.isArray(a) // true2.valueOf() 方法返回数组本身var a = [1, 2, 3];a.valueOf() // [1, 2, 3]3.toString() 方法返回数组的字符串形式var a = [1, 2, 3];a.toString() //

2020-06-10 21:50:17 167

原创 手写NodeJs中间件body-parser

const qs = require("querystring"); // 闭包用在哪里? // express,引入中间件的时候,就是用闭包 module.exports = { urlencoded : function(){ //重点就是这个闭包 return function(req, res, next){ let str = ""; ...

2020-06-10 21:42:30 188

原创 NodeJs项目搭建

创建一个文件夹(项目名称)在文件夹里面 创一个 package.json npm init -y // 生成 package.json文件下载相关组件 express MVC框架 cookie-parser 加强读取与解签名,发送自带 express-session 浏览器与服务器会话管理 body-parser 加强post请求解析 multer 简化图片上传 morgan 日志 jade,ejs 模板引擎.

2020-06-10 21:40:13 224

原创 mongodb-node

参考文档https://segmentfault.com/a/1190000002973153https://www.cnblogs.com/jayruan/p/5123754.htmlhttps://www.jianshu.com/p/8af0552831f6node连接mongodb方式一http://www.runoob.com/nodejs/nodejs-mongodb.htmlnode连接mongodb方式二什么是mongoose?基于node的第三方组件,操作mongodb

2020-06-10 21:36:38 149

原创 MongoDB使用

Mongo版本选择https://www.mongodb.comhttp://dl.mongodb.org/dl/win32/x86_64安装MongoDB软件选择完全安装即可 (Complete—>Install)设置环境变量1.找到安装目录,找到mongo命令所在的位置C:\Program Files\MongoDB\Server\3.2\bin将命令配置用户环境中创建文件夹1.非系统盘下(D盘)创建一个 mongodb 文件夹,再创建文件夹db和logd:\m

2020-06-10 21:35:24 135

原创 NodeJs之MySQL连接

dbcon.jsimport mysql from "mysql";import config from "../config/config.js";// 创建连接池 var pool = mysql.createPool(config.mysqlCon); const query = (sql,params,fn)=>{ // 获取连接 pool.getConnection((err,conn)=>{ if (err) { fn(err,null,null);

2020-06-10 21:31:46 238

原创 NodeJs之图片上传

NODEJS后台 const express = require('express'); const multer = require('multer'); const fs = require('fs'); const pathLib = require('path'); let server = express();// 定义上传的文件的路径 let multerObj = multer({dest : './www/upload/'}); ser

2020-06-10 21:27:23 576

原创 NodeJs之express框架

express下载创建// 下载npm install express express-static --save // 创建服务 const express = require("express");var server = express();server.listen(8081);server.use('/', function(req, res){ console.log(req.body); res.end();})express-cookie模块 /

2020-06-10 21:20:12 222

原创 NodeJs之fs(file-system)模块

NodeJs FS 模块fs.stat 检测是文件还是目录 const fs = require ('fs') fs .stat('hello.js', (error, stats) =>{ if(error){ console .log(error) } else { console .log(stats) console .log(`文件:${stats.isFile()}`)

2020-06-10 21:14:39 174

原创 NodeJs之Url模块

URL模块用于解析和处理URL字符串,提供了三个方法:parseformatresolveparse方法将URL解析成一下几部分:href:原始urlprotocal:url协议host:主机host中又包含以下信息:auth:用户认证port:端口hostname:主机名pathname:跟在host之后的整个文件路径search:url中HTTP GET信息,包含了?query:跟search类似,不包含?hash:片段部分,也就是URL#之后的部分示例:var

2020-06-10 21:07:57 164

原创 NodeJs之queryString模块

querystring从字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析。querystring模块只提供4个方法,在我看来,这4个方法是相对应的。这4个方法分别是querystring.parseparse这个方法是将一个字符串反序列化为一个对象。参数:str指需要反序列化的字符串;separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&"; querystring.parse("name=whitemu&sex=man&amp

2020-06-10 21:07:06 371

原创 Node之NPM笔记

npm 是世界上最大的开放源代码的生态系统。我们可以通过 npm 下载各种各样的包, 这些源代码(包)我们可以在 https://www.npmjs.com 找到。npm 是随同 NodeJS 一起安装的包管理工具,能解决 NodeJS 代码部署上的很多问题, 常见的使用场景有以下几种:允许用户从 NPM 服务器下载别人编写的第三方包到本地使用。(silly-datetime)允许用户从 NPM 服务器下载并安装别人编写的命令行程序(工具)到本地使用。 (supervisor)  允许用户将自己编写

2020-06-10 21:03:33 140

原创 CommonJs 和 Nodejs 中自定义模块

一、什么是 CommonJs?JavaScript 是一个强大面向对象语言,它有很多快速高效的解释器。然而, JavaScript 标准定义的 API 是为了构建基于浏览器的应用程序。并没有制定一个用于更广泛的应用程序 的标准库。CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷。它的终 极目标就是:提供一个类似 Python,Ruby 和 Java 语言的标准库,而不只是停留在小脚本程序 的阶段。用 CommonJS API 编写出的应用,不仅可以利用 JavaScr

2020-06-10 21:00:53 406

原创 gulp的使用

什么gulp ?前端自动化构建工具 之一,市场还有 Grunt,webpack.都是基于nodejs环境.gulp的模块gulp-htmlmin 压缩html,去掉注释,去掉空格等等…gulp-cssmin–>gulp-clean-css,压缩cssgulp-connect 合并js文件gulp-less 自动生成cssgulp-imagemin 压缩图片gulp的方法task 创建人物src 指定资源pipe 管道方法dest 指定目标方法watch ..

2020-06-10 20:58:19 109

原创 babel-cli使用

参照资源https://excaliburhan.com/post/babel-preset-and-plugins.htmlhttps://github.com/jamiebuilds/babel-handbook/blob/master/translations/zh-Hans/user-handbook.md#toc-configuring-babel第一步:安装 npm install babel-cli babel-preset-env --dev第二步:新建一个文件.babe

2020-06-10 20:55:32 246

空空如也

空空如也

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

TA关注的人

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