- 博客(69)
- 收藏
- 关注
原创 正则表达式攻略
第一章 正则表达式字符匹配攻略正则表达式是匹配模式,要么匹配字符,要么匹配位置。请记住这句话。然而关于正则如何匹配字符的学习,大部分人都觉得这块比较杂乱。毕竟元字符太多了,看起来没有系统性,不好记。本章就解决这个问题。内容包括:两种模糊匹配字符组量词分支结构 案例分析:1. 两种模糊匹配如果正则只有精确匹配是没多大意义的,比如/hello/,也只能匹配字符串中的"hello"这个子串。var regex = /hello/;console.log( regex.test("hello") );
2021-08-25 17:14:19
1061
1
原创 Dockerfile创建自定义镜像
Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像。先介绍 Dockerfile 的基本结构及其支持的众多指令,并具体讲解通过执行指令来编写定制镜像的 Dockerfile。基本结构Dockerfile 由一行行命令语句组成,并且支持已 # 开头的注释行。一般而言,Dockerfile 的内容分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。例如:# This dockerfile uses the Ubuntu image
2021-08-25 17:06:19
386
原创 TypeScript-学习之路
对比JSjs比较简单、易用,但同时容易出现问题,存在安全隐患js后期维护比较困难,不适合开发大型项目,面向对象写的比较麻烦(是写在构造函数中还是写在原型中)有值类型的概念但是没有变量类型的概念//变量动态类型let age = 10;age = '10';age = true;安全问题:当需要a的类型为数字进行运算时,我们亦可以改变a的类型为字符串,在运算时就会发生错误(字符串拼接),同时这个问题不会报错,因此会产生很大的问题。同时函数的参数也没有类型,在传入参数时没有限制,后续使
2021-08-25 17:01:06
1133
1
原创 ts基本类型
类型声明指定TS中变量(参数、形参)的类型当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错let 变量 : 类型;function fn(参数: 类型,参数: 类型): 类型 { ...}let a: number = 10;a = 20;a = 'hello'; //报错function sum(a: number, b: number): number { return a + b;}sum( 123 , "456") //“456”
2021-06-11 15:28:38
904
原创 Typescript入门安装教程
一、typescript特点js的优点:到处都可以运行、大量的第三方库、灵活快速js的不足:动态类型、传统缺少模块化、随心所欲、缺少约束ts是js的超集:类型检查、语言扩展、工具属性、类型思维二、typescript安装及使用安装:cnpm install -g typescript检查:tsc -v出现版本号,说明已经安装成功运行:直接运行ts文件:touch main.js使用ts-node运行:npm install ts-node -g(支持ts的nod
2021-06-07 10:01:00
382
原创 JS深拷贝实现的三种方法
对象的深拷贝会另外创建一个一模一样的对象,新对象和原对象不共享内存,修改新对象不会影响原对象1. 递归 function deepClone(obj){// 定义一个变量 并判断是数组还是对象 var objClone = Array.isArray(obj) ? [] : {}; if(obj && typeof obj === "object" && obj != null){ // 判断obj存在并且是对象类型
2021-05-11 15:50:11
5423
原创 线程和进程的区别
一、进程与线程的区别?1,进程是资源分配的最小单位;线程是程序执行的最小单位,也是处理器调度的基本单位。2,进程有独立的地址空间,启动一个进程系统就会为它分配地址空间,建立数据表来维护代码段,堆栈段和数据段;线程共享进程中的数据,使用相同的地址空间。3,进程通信需要以IPC的方式(Inter-Process Communication,进程间通信);线程共享全局变量,静态变量等数据,通信更为方便。4,进程切换消耗的资源大,效率低,但多进程程序更健壮,一个进程死掉并不会对另外一个进程造成影响;多线程程
2021-04-06 19:41:34
126
1
原创 JS 数组去重的方法(3种)
1.indexOf循环去重function fun(arr){ let bew Arr = []; for(var i=0;i<arr.length;i++){ if(newArr.indexOf(arr[i] === -1)){ newArr.push(arr[i]) } } return newArr}2.splice()去重function fun(arr){ for(let i=0;i<arr.length;i++){ for(let j=i+1;j
2021-04-01 17:11:27
249
原创 JS 实现七种继承方法
1.原型链继承将父类的实例作为子类的原型(利用原型让一个引用类型继承另一个引用类型)特点:实例是子类的实例也是父类的实例,父类新增的原型方法/属性,子类都能访问缺点:来自原型对象的所有属性被所有实例共享,无法实现多继承无法给父类构造函数传参function person(){}people.prototype = new person()people.prototype.name = 'lisa'let obj = new people()2.借用构造函数继承复制符类的实
2021-03-29 18:06:54
135
1
原创 Node.js ORM框架Sequelize查询
ORM (Object Relational Mapping)对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。类—>表|属性—>表中的列|类的对象—>表中的行持久化,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。主要应用时将内存中的数据存储在关系型的数据库中,或磁盘文件、XML数据文件等提高开发效率Sequelize:基于promise的关系型数据库ORM框架,完全采用JS开发并且能够用在Node.js环境中,易于使用,支持
2021-03-26 17:06:15
634
1
原创 小程序常见面试题
谈谈wxml与html的一同?都是由标签、属性等构成,用来描述页面的结构标签名称不同,且小程序标签更少,单一标签更对小程序多了一些类似vue的wx:if这样的属性以及{{}}表达式wxml在微信小程序开发工具中预览,可以在手机上进行真机调试,html可在浏览器内预览组件封装不同,wxml对组件进行了重新封装-小程序运行在JS Core中,没有DOM树和Window对象,document对象小程序页面间传递数据的方法?给html元素添加data-*属性来传递值,然后通过e.current
2021-03-23 18:52:54
1444
2
原创 React State状态与生命周期
实现组件的方法:组件名称首字母必须大写1.通过JS函数方式实现组件<div id="app"></div><script type="text/babel"> var ReactDiv = document.getElementById('app'); function GetReactComp(){ return <p>我是react组件</p> } const hellocomp = &
2021-03-21 11:56:53
309
4
原创 React 虚拟DOM及JSX总结
1.React概述是用于构建用户界面的JS库,旨在简化可视化界面的开发基于JSX的语法,JSX是React的核心组成部分,它使用xml标记的方式去直接声明界面和HTML,JS混写React核心是组件ReactDOM.render(element,container[,callback])参数:element:渲染的源对象(元素或组件)container:渲染的目标对象callback:可选,用户定义回调函数2.React的优点:声明式设计高效:React通过对DOM的模拟,最
2021-03-20 11:53:09
137
原创 浏览器Cors跨域访问报错(解决)
火狐浏览器设置步骤:进入火狐配置页进行设置 ,地址栏输入"about:config"点击”我了解此风险”后进入页面搜索”security.fileuri.strict_origin_policy”,并设置该项为false重启浏览器,可以跨域访问
2021-03-20 10:47:47
1083
原创 Vue项目优化--路由懒加载及实现方式
路由懒加载: 运用懒加载则可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载用时像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,时间过长,会出现长时间的白屏,即使做了loading也是不利于用户体验方法:vue异步组件es提案的import()webpack的require.ensure()1.ES6写法语法:const 组件名=() => import('
2021-03-18 20:35:57
251
原创 CSS布局方式(圣杯布局,双飞翼布局)
1.圣杯布局header和footer各自占领屏幕所有宽度,高度固定。中间的container是一个三栏布局。三栏布局两侧宽度固定不变,中间部分自动填充整个区域。中间部分的高度是三栏中最高的区域的高度。float+position:relative(1)header和footer横向撑满。(2)container中的三列设为浮动和相对定位,middle放在最前面,footer清除浮动。(3)三列的左右两列分别定宽200px和150px,middle设置100%撑满,由于浮动,middl
2021-03-16 20:19:08
221
原创 Vue和React的区别
监听数据变化的实现原理不同Vue通过getter/setter以及一些函数的劫持能精确知道数据的变化React默认是通过比较引用方式(diff)进行的,若不优化会导致大量不必要的VDom(虚拟Dom)的重新渲染数据流不同Vue实现双向绑定:props可以双向绑定、组件与DOM之间可以通过v-model绑定React不支持双向绑定,提倡单向数据流,称之为onChange/setState模式组件通信的区别Vue中有三种方式可以实现组件通信:父组件通过props向子组件传递数据或..
2021-03-14 17:19:24
380
1
原创 axios请求数据的方式
Axios实对ajax进行了封装,可实现异步请求Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中1.特性:在浏览器中创建 XMLHttpRequests在 node.js 则创建 http 请求支持 Promise API支持拦截请求和响应转换请求和响应数据取消请求自动转换 JSON 数据客户端支持防御 XSRF2.使用方法:前后端分离:在前端中引入axios.js文件模块开发:在项目中安装axios模块npm install
2021-03-13 17:21:39
2556
5
原创 Vue 过滤器(filter)的使用
一、什么是过滤器?用于文本格式化(本质是一个函数)用于双括号插值和v-bind表达式,用管道符'|'添加到表达式尾部双括号插值:{{ message | capitalize}}v-bind表达式: <div v-bind:id='rawid | formatid></div>'二、注册过滤器注册全局过滤器Vue.filter('filtername',function(value){...})<div id="demo1"> <
2021-03-08 18:03:21
847
2
原创 Vue 计算属性和侦听器
一、计算属性 用关键字computed来实现,每一个计算属性本质上是一个函数当我们需要对数据进行大量操作时,例如:<div id="example"> {{ message.split('').reverse().join('') }}</div>对message进行翻转字符串操作,当我们需要对多个数据都进行反转操作时,使用计算属性 就很简便<!-- 计算属性 --><div id="app"> <p>{{cont
2021-03-07 15:05:58
116
原创 Vue 常用指令、注册指令方法
一、Vue简介一套构建用户界面的渐进式框架。只关注视图层, 采用自底向上增量开发的设计。目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。1.vue安装两种方式:前端引入:下载vue.js文件,通过<script>标签引入到html文件中命令行安装$ cnpm install vue (cnpm:淘宝npm镜像)vue-cli创建项目参考:vue-cli脚手架项目创建2.vue项目目录结构解析目录/文件说明build项目构建
2021-03-07 14:07:19
1000
原创 使用脚手架搭建Vue项目详细步骤
使用vue-cli创建模板项目1、什么是vue-cli是vue官方提供的脚手架工具。脚手架工具简单讲就是自动将项目需要的环境、依赖等信息都配置好。2、全局安装vue-cli(1)检查npm 版本,建议安装到最新版本。【命令行查看版本号】node -vnpm -v【升级npm(可选操作)】npm install -g npm【修改为淘宝镜像(可选操作)】npm config set registry "https://registry.npm.taobao.org"(2)安装【全
2021-03-06 14:06:58
754
原创 MVVM 和 MVC的原理及区别
一、什么是MVVM和MVC?MVVM(Model-View-ViewModel):M:Movel(数据模型)V:ViewVM:ViewModel 是一个同步View 和 Model的对象。将数据模型数据双向绑定的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。MVC(Model-View-Controller):M:
2021-03-04 18:06:24
3200
3
原创 Node.js Express框架学习
一、Express简介Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。1.Express 框架核心特性:可以设置中间件来响应 HTTP 请求。定义了路由表用于执行不同的 HTTP 请求动作。可以通过向模板传递参数来动态渲染 HTML 页面。2.Express框架各文件说明:(1) bin --> 启动配置文件(2) node
2021-03-04 17:37:44
177
1
原创 Node.js GET和POST请求
在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交。表单提交到服务器一般都使用 GET/POST 请求。URL模块将一个url字符串解析并返回一个url对象url.parse(urlstr[,parseQueryString[,slashesDenoteHost]])参数解析:urlstr --> 需要解析的url字符串parseQueryString --> 布尔值:(默认为false) 若采用url传输,必须将这个参数设置为true,才能将.
2021-03-01 20:50:11
310
原创 模态框创建 及 数据获取 (实例解析)
创建模态框需要用到BootstrapDialog组件,可到官网自行下载实现的效果:(将编号为5的行,姓名jock改为bene)我把创建模态框封装为一个函数,可以随时调用这里是基于Vue+axios+node.js写的用node.js写的后台接口,获取到数据库内表的值用axios请求获取数据页面表格的代码如下:<div id="table" style="margin-top: 50px;"> <table class="table table-hover t
2021-02-25 14:24:06
2200
原创 理解Node.js中的Stream流
一、Node.js中的stream(流)的概念及作用?什么是流?日常生活中有水流,我们很容易想得到的就是水龙头,那么水龙头流出的水是有序且有方向的(从高处往低处流)。我们在nodejs中的流也是一样的,他们也是有序且有方向的。stream:处理系统缓存的方式nodejs中的流是可读的、或可写的、或可读可写的。并且流继承了EventEmitter。因此所有的流都是EventEmitter的实列。1.Node.js中有四种基本的流类型:Readable–可读的流(比如 fs.createRea
2021-02-25 11:47:30
351
原创 什么是严格模式和混杂模式?如何区分?
一、什么是严格模式和混杂模式?严格模式:标准模式,浏览器按照W3C标准解析代码混杂模式:怪异模式/兼容模式,浏览器按照自己的方式解析代码DOCTYPE的作用?< !DOCTYPE>声明叫做文件类型定义(DTD),声明的作用为了告诉浏览器该文件的类型。让浏览器解析器知道应该用哪个规范来解析文档。< !DOCTYPE>声明必须在 HTML 文档的第一行,这并不是一个 HTML 标签。二、如何区分严格模式和混杂模式?如果文档包含严格的 DOCTYPE ,那么它一般
2021-02-23 13:31:29
2903
2
原创 Node.js --文件系统常用函数
文件系统Node实现文件I/O使用标准的POSIX函数简单包装导入文件系统模块(fs)语法:var fs = require("fs")1.异步、同步Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本异步方法即前后端处理不需要相互等待回调:等事件触发后再执行,是一个异步等效的功能异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。建议使用异步方法,比起同步,异步方法性能更高,速度更快,而且没有阻塞。2.文件模
2021-02-22 17:59:36
500
1
原创 Node.js -- Buffer(缓冲区)类
BufferJavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。1.Buffer解释在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。成员都是0-255的整数值,即一个8位字节Buffer 库为 Node.js 带来了一种存储原始数据的方法, Node.js 处理二进制数据的一个接口,是一个构造函
2021-02-22 17:21:36
517
1
原创 node.js--CommonJS 规范
CommonJS 规范是一套js的代码规范,使js可以开发复杂应用,同时具备跨平台能力内容:模块必须通过mudule.exports导出对外的变量或接口,通过require()来导入外部的模块的输出到当前模块中特点:所有代码运行进行在当前模块作用域中,不会污染全局作用域模块同步加载,根据代码中出现的顺序依次加载模块可多次加载,但指挥在第一次加载中运行一次,将运行结果缓存,以后加载就直接读取缓存结果,如果要再次执行,必须清除缓存1. ModuleNode内部提供了一个Module构建函数:
2021-02-22 14:48:53
197
1
原创 node.js 基础知识 及 npm使用方法
一、Node.js简单介绍Node.js 就是运行在服务端的 JavaScript在node环境下,通过模块化js语言,以及函数式编程,并且无需考虑服务器兼容性问题,直接用最新的ES6标准,可以完全满足工程上的需求。1.应用场景:实时性应用 :如在线多人协作工具,网页聊天应用以I/O为主的高并发应用 :如客户端提供API,读取数据库流式应用 :如客户端频繁上传文件前后端分离2.Node.js应用的组成引入 required 模块:使用 require 指令来载入 Node.js 模
2021-02-22 14:24:43
222
1
原创 对NoSQL -- 非关系型数据库的理解
NoSQL?NoSQL,指的是非关系型的数据库。Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。1.对比RDBMS 和 NoSQL:RDBMS一般指关系数据库管理系统。关系数据库管理系统(Relational Database Management System:RDBMS)是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。RDBMS高
2021-02-21 14:38:28
740
原创 MongoDB--数据库使用方法
一、NoSQL?NoSQL,指的是非关系型的数据库。Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。1.对比RDBMS 和 NoSQL:RDBMS一般指关系数据库管理系统。关系数据库管理系统(Relational Database Management System:RDBMS)是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。RDBMS
2021-02-21 14:11:37
140
原创 数据库连接池怎么用?
什么是数据库连接池?数据库连接池是程序启动时建立足够多的连接对象,组成一个池,由程序动态的对池中的连接对象进行申请、使用和释放作用:负责分配,管理和释放连接对象创建连接池:(连接数据库)var pool = mysql.createPool({ connectionLimit:'20', //最大连接数 queueLimit:'允许挂起的连接数', multipleStatements:'true/false', //是否允许执行sql语句 //以下四个必写 host:'主机号',
2021-02-13 13:22:23
2275
2
原创 Ajax 工作原理
Ajax是什么?异步的js和XML组成:js,css,DOM,XMLHttpRequest对象工作原理:Ajax提供与服务器异步通信的能力,可在web页面触发js事件中中服务器发出一部请求,如执行更新或查询数据库Ajax的核心是js对象XMLHttpRequest,改对象在IE5中首次引入,使用户通过js向服务器提出请求并处理相应,不阻塞用户当web服务器的相应返回时,使用js回调函数和CSS相应的更新页面的局部页面,而不是刷新整个页面在页面与服务器交互的过程中不中断用户操作,用户甚至察觉不
2021-02-13 12:44:39
3868
3
原创 Mysql --数据库用法总结
一、数据库基础知识DBMS数据库管理系统三级模式:用户级–> 外模式(反映了数据库系统用户观)外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。概念级–> 概念模式(反映了数据库系统的整体观)概念模式又称模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)物理级 --
2021-02-03 17:20:12
310
1
原创 HTTP和HTTPS的工作原理及区别
一、HTTP和HTTPS的基本概念HTTP(HyperText Transfer Protocol:超文本传输协议):是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从Web服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS(HyperText Transfer Protocol Secure:超文本传输安全协议):是以安全为目标的HTTP通道,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就
2021-01-30 13:17:49
4158
10
原创 swiper插件--实现轮播图
swiper是jquery中已经定义好的一个插件,用来实现动态的轮播1.可以在官网上直接下载所需引入的文件https://www.swiper.com.cn/2.将下载好的文件引入顺序如下:(必须先引入jquery.js文件再引入swiper.jquery.js文件,因为后者是依赖于前者的)<link rel="stylesheet" href="css/swiper-3.4.2.min.css"> <script src="https://cdn.bootcss.com/jq
2021-01-28 17:27:11
578
原创 jquery -- 学习总结
1.jQuery是什么?jQuery 是一个 JavaScript 库 – 轻量级的"写的少,做的多"jQuery功能:2.jQuery语法(1)入口函数:检测jq是否引入成功//原型$(document).ready(function(){ ...})//缩写$(function(){ ...})jquery和javascript入口函数之间的区别:jQuery 的入口函数是在 html 所有标签(DOM)都加载之后,就会去执行。JavaScript 的 window.
2021-01-27 15:43:17
204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人