- 博客(43)
- 收藏
- 关注
原创 使用 Flask 和 Vue.js 来构建全栈应用
使用 Flask 和 Vue.js 来构建全栈应用在这个教程中,我将向你展示如何将 Vue 和 Flask 后端连接起来。客户端安装Vue为了生成基本的 Vue.js 文件结构,我将使用 vue-cli。 如果你没有安装它,请运行下边的命令:npm install -g @vue/cli创建项目客户端和后端代码将会被拆分到不同的文件夹中, 请运行下边命令初始化前端部分:$ mkdir flaskvue$ cd flaskvue$ vue create frontend安装过程过的.
2020-09-17 18:00:50
888
原创 typeof 运算符与深拷贝
typeof 运算符与深拷贝typeof 运算符首先我们来探究 typeof 究竟能判断出来哪些数据类型。判断值类型let a;const b = 'abc';const c = 100;const d = true;const e = Symbol('d');typeof(a) // "undefined"typeof(b) // "string"typeof(c) // "number"typeof(d) // "boolean"typeof(e) // "symbol"
2020-09-08 18:55:27
204
原创 搭建 vue + electron 坏境
Vue与Electron开发环境的简易搭建前期准备全局安装 vue-cliyarn global add @vue/cli# ornpm install -g @vue/cli了解Electron的渲染进程与主进程。新建一个Vue项目运行vue create app对项目进行初始配置在项目根目录下建立一个vue.config.js文件,并在其中写入:module.exports={ publicPath:'./', // productionSourceMap:f
2020-06-12 21:23:04
258
原创 new运算符优先级问题
这里收录一道阿里的变态面试题!!!function Foo() { getName = function() { console.log(1); }; return this;}Foo.getName = function() { console.log(2);};Foo.prototype.getName = function() { ...
2020-03-30 20:53:10
1166
1
原创 子元素在父元素中水平垂直居中的六种方法
这里介绍六种方法使子元素在父元素中水平垂直居中,并且分析其优缺点。目录定位:三种display: flexJavaScriptdisplay: table-cell首先给出页面结构和默认背景色:(由于在浏览器中的显示结果都是水平垂直居中,所以就不附加运行图了。)HTML<div class="parent"> <div class="child"&g...
2020-03-29 22:22:17
1664
原创 CSS中两种盒模型
在CSS盒模型的默认定义中,对一个元素设置的width和height只会应用到这个元素的内容区。如果这个元素有任何的border或padding,绘制到屏幕上时的盒子宽度和高度会加上设置的边框和内边距值。这意味着当你调整一个元素的宽度和高度时需要时刻注意到这个元素的边框和内边距。当我们实现响应式布局时,这个特点尤其烦人。box-sizing 属性可以被用来调整这些表现:content-b...
2020-03-29 17:11:10
103
原创 H5与HTML5
H5 != HTML5H5是一个产品名词,HTML5是一个技术名词。H5不是一项技术,而是一个标准。HTML5指的是包括 HTML 、 CSS 和 JavaScript 在内的一套技术组合。它希望能够减少网页浏览器对于需要插件的丰富性网络应用服务( Plug-in-Based Rich Internet Application , RIA ),例如: AdobeFlash 、 Microsof...
2020-03-29 16:43:31
259
原创 H5 新增标签
该页列出所有HTML5新增的有效标签。脚本ElementDescription<template>通过 JavaScript 在运行时实例化内容的容器。章节ElementDescription<section>定义文档中的一个章节<nav>定义只包含导航链接的章节<article>...
2020-03-29 15:58:12
194
原创 meta viewport
浏览器的viewport是可以看到Web内容的窗口区域,通常与渲染出的页面的大小不同,这种情况下,浏览器会提供滚动条以滚动访问所有内容。窄屏幕设备(如移动设备)在一个虚拟窗口或视口中渲染页面,这个窗口或视口通常比屏幕宽;然后缩小渲染的结果,以便在一屏内显示所有内容。然后用户可以移动、缩放以查看页面的不同区域。例如,如果移动屏幕的宽度为640px,则可能会用980px的虚拟视口渲染页面,然后缩小页...
2020-03-29 15:25:43
198
原创 HTML 语义化
什么是 HTML 语义化 ?例如:添加标题使用<h1>到<h6>标签,添加段落使用<p>标签,添加时间使用<time>标签等等。根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。为什么要语义化?HTML 的发展有几个阶段:荒野阶段:该阶段的页面都由后台来实现,...
2020-03-29 15:06:54
112
原创 H5新特性_调用用户设备
调用摄像头:在移动端给用户做选择是打开相册还是摄像头;在 PC 端直接打开摄像头。调用麦克风:无论在移动端还是 PC 端都直接打开麦克风。首先页面布局一个video和canvas分别用来显示视频和拍照。再添加两个按钮用来唤醒视频和拍照功能。<!DOCTYPE html><html lang="zh"><head> <meta charset=...
2020-03-25 10:58:39
150
原创 H5新特性_Web Workers
专用Web Worker提供了一个简单的方法使的web内容能够在后台运行脚本。一旦worker创建后,它可以向由它的创建者指定的事件监听函数传递消息,这样该worker生成的所有任务就都会接收到这个消息。worker线程能够在不干扰 UI 的情况下执行任务。考虑这样几行代码:for (let i = 0; i < 1000; i ++) { console.log(1);}cons...
2020-03-25 08:45:58
232
原创 H5新特性_cookies,sessionStorage 和 localStorage 数据持久化
在我们访问网站的时候,有些网站是要填写登录访问的,如果我们每次访问该网站都需要重新输入用户名密码再进行验证就显得特别麻烦。cookies,sessionStorage 和 localStorage 是三种数据持久化对象,例如:当我们访问某网站后在一定的时间内下一次打开该网站,就会自动登录用户名。都是依据这三种方法来实现的。cookie 实现:存储或修改:document.cookie = ...
2020-03-24 19:36:12
246
原创 链表_链表封装
链表结构本身就是一种可以代替数组的结构,所以它的操作与数组的操作非常类似。与数组比较,它们都可以存储一系列的元素,但是实现的机制完全不同。数组有很多缺点:数组需要申请一段连续的内存空间,并且大小是固定的(大多数编程语言),所以在数组增加元素时需要扩容。(一般情况下是申请一个更大的连续内存空间,比如2倍,再将元素复制过去)在数组的中间或末尾插入元素成本很高,因为它内部需要改变插入位置后面的...
2020-03-24 15:22:08
691
原创 优先级队列_优先级队列封装
我们已经了解过了队列,接下来了解一下什么是优先级队列:其实程序就是对生活的一种描述,之前我们了解过队列,一个队列就好比生活中我们去火车站进站,每个人都需要排队,依次进站乘车。但是我们考虑到这个一个现象:在火车站进站时,都会规定军人优先,这里就涉及到了优先级的概念。在程序中亦是如此,队列也有优先级队列之说。接下来实现一下优先级队列的封装:function PriorityQueue()...
2020-03-24 11:35:05
161
原创 队列_队列结构封装
队列(Queue)结构满足先进先出Fifofirst in first out。队列使用的方法有:enqueue()dequeue()front()size()toString()与之前的栈结构的方法相似,唯一不同就是第二个方法,栈是删除最后一个元素,而队列是删除第一个元素:function Queue() { // 属性 this.item = []; ...
2020-03-24 10:23:18
177
原创 栈_栈结构封装
栈(Stack)结构满足Lifo(Last in first out)。栈常见的操作有:push()pop()peek()isEmpty()size()toString()接下来使用JavaScript来封装一个栈结构:function Stack() { this.item = []; // 栈的相关操作 // 1. 将元素压入栈 Stack...
2020-03-23 22:28:40
212
原创 封装Ajax
当我们需要使用Ajax异步请求数据时,如果使用原生Ajax,如果每次都需要调用,就会显得重复代码过多,浪费时间;或者可以引入jQuery库,但是这样做,如果不适用jQuery中的其他功能就会使资源浪费,所以一定情况下我们需要自己来封装一个Ajax,我们可以在使用时直接调用封装的函数或者引入js文件。这里附上封装好的Ajax,假设记作文件myAjax.js:function myAjax(par...
2020-03-20 12:18:15
74
原创 记录两款方便编写markdown的工具
TyporaPicGoTyporaTypora删除了预览窗口、模式切换程序、标记源代码的语法符号以及所有其他不必要的干扰。将它们替换为真正的实时预览功能:这里Typora为我们直接省略了#,并且显示出了实时预览的效果。PicGo在我们保存本地md文件的时候添加图片时,有时候需要使用本地链接,当我们后期删除图片时,相应的md文件也会受到影响,这款PicGo软件可以直接把本地的图片修...
2020-03-20 10:12:08
114
原创 php中使用PDO连接数据库
使用PDO (PDO即PHP数据对象PHP Data Object) 连接数据库。PDO提供了一个【数据访问】抽象层,这意味着不管使用哪种数据库, 都可以用相同的函数(方法)来查询和获取数据。单例模板:test.php文件<?php// PDO 连接数据库,单例模板class SingletonPDO { private static $pdo = null; p...
2020-03-12 16:14:48
386
原创 设计模式(单例模式)
在PHP中经常会用到单例模式,单例模式就是通过一个类创造出来的对象都是同一个,而并不是一个新的对象。特别是在DB操作中,DB连接这种对象就必须是通过单例模式来实现的。还有例如地图中我们也是使用单例模式,使用单例模式使得我们每次搜索地图后返回都不会创建一个新的对象,不仅增强了性能,还不会使地图每次都刷新,跑位。下面举例来实现:<?phpclass RichestMan { priv...
2020-03-12 12:45:40
74
原创 PHP连接数据库
记录一下第一次使用PHP连接数据库HTML:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> ...
2020-03-11 17:33:07
161
原创 JavaScript的垃圾回收机制
JavaScript具有自动化的垃圾回收机制,也就是说,执行环境会负责管理代码执行过程中使用的内存。而在C和C++这一类语言中,开发人员的一项基本任务就是手动跟踪内存的使用情况。在编写JavaScript程序中,开发人员不需要再关心内存的使用问题,因为所需内存的分配以及无用内存的回收完全实现了自动管理。其实这种垃圾收集机制的原理非常简单:找出那些不再继续使用的变量,然后释放其占用的内存。为此,垃圾...
2020-03-09 20:21:26
95
原创 事件委托
事件委托我们先考虑这样一个例子:<ul> <li>li1</li> <li>li2</li> <li>li3</li> <li>li4</li> <li>li5</li></ul>我们需要给面前的所有<li...
2020-03-07 21:59:58
1170
1
原创 那些你不知道的javascript小知识
本文会向大家介绍一些javascript中的冷门知识,看完后觉得涨姿势了别忘记点个赞哦。立即执行函数javascript中拥有立即执行函数,使用立即执行函数是有很多好处的。如果你觉得我只是给你介绍众所周知的立即执行函数的两种写法,那你还是中规中矩的往下看吧。首先,我们都知道立即执行函数有两种书写方式:// 第一种(function() { alert("hello world");}...
2020-03-07 20:46:59
177
原创 十大经典排序算法(10)基数排序
基数排序基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序 vs 计数排序 vs 桶排序基数排序有两种方法:这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差异:基数排序:根据键值的每位数字来分配桶;计数排序:每个桶只存储单一...
2020-03-07 19:28:39
418
原创 十大经典排序算法(9)桶排序
桶排序桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。为了使桶排序更加高效,我们需要做到这两点:在额外空间充足的情况下,尽量增大桶的数量使用的映射函数能够将输入的 N 个数据均匀的分配到 K 个桶中同时,对于桶中元素的排序,选择何种比较排序算法对于性能的影响至关重要。分析最快:当输入的数据可以均匀的分配到每一个桶中。最慢:当输入的数据被...
2020-03-07 19:25:38
260
原创 十大经典排序算法(8)计数排序
计数排序计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。算法步骤找出待排序的数组中最大和最小的元素统计数组中每个值为i的元素出现的次数,存入数组C的第i项对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加)反向填充目标数组:将每个元素i放在新数组的第C(i)项,每放一个元素就将C...
2020-03-07 19:20:22
223
原创 十大经典排序算法(7)堆排序
堆排序堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法:大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列;小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;...
2020-03-07 19:16:32
180
原创 十大经典排序算法(6)快速排序
快速排序快速排序的名字起的是简单粗暴,因为一听到这个名字你就知道它存在的意义,就是快,而且效率高!它是处理大数据最快的排序算法之一了。算法步骤从数列中挑出一个元素,称为 “基准”(pivot);重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作...
2020-03-07 19:12:12
182
原创 十大经典排序算法(5)归并排序
归并算法归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法:自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第 2 种方法);自下而上的迭代;算法步骤申请空间,使其大小为两个已经排序序列之和,该空间用来存放合...
2020-03-07 19:06:11
197
原创 十大经典排序算法(4)希尔排序
希尔排序希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位;希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个...
2020-03-07 18:55:36
331
原创 十大经典排序算法(3)插入排序
插入排序插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。算法步骤将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。从头到...
2020-03-07 18:51:00
155
原创 十大经典排序算法(2)选择排序
选择排序选择排序是一种简单直观的排序算法,用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。算法步骤首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。动图演示代码实现JavaScript实现:function select...
2020-03-07 18:45:39
123
原创 十大经典排序算法(1)冒泡排序
冒泡排序冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。算法步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开...
2020-03-07 18:14:00
145
原创 JavaScript中的正则表达式
前言正则表达式,是一种独立的语法结构,许多程序设计语言都支持利用正则表达式进行字符串操作。例如:在js中我们会大量用于表单验证中,在python中,当我们使用爬虫时会用正则表达式来判断出你所要爬取的网址,如果匹配那就会爬取。正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。正则表达式作用:测试字符串内的模式。例如,可以测试输入字符串,以查看...
2020-03-07 11:34:56
147
原创 python3学习笔记(字典)
定义1. 字典是无序对象的集合。2. 字典用花括号{}定义。3. 字典中键值(key => value)对用冒号:分隔,每个对中间用,分隔。键key是索引值value是数据键必须是唯一的键必须是不可变的,如字符串、数字或元组值可以是任意类型对象例如:people = { "name": "xiaoming", "age": 18, "male"...
2020-03-06 19:21:21
329
1
原创 HbuilderX进行App云打包
本文总结使用HuilderX进行简单的App云打包的过程我们使用的是Vux,它是基于WeUI和Vue(2.x)开发的移动端UI组件库,主要服务于微信页面。1. 首先全局安装vue-cli:npm install vue-cli -g2. 创建vux2项目vue init airyland/vux2 projectPath在进行选项选择时选择y,n,n,n,命令中projectPath只...
2020-03-06 14:23:45
4501
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人