自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯简单考点分析-物联网2021年备赛

蓝桥杯考点分析其实把简单题全做对省二肯定有了把简单题(语言基础题)和中等题(语言基础题,DFS,BFS,贪心等),省一应该有了下面的题型,不要看简单,因为蓝桥杯是oi赛制的,一旦有点小错误可能就爆零了,还是认真做一下吧并且oi赛制的好处是你不会把题目A掉,会暴力算法(DFS)就可以拿到部分分题型一 数字分割(每年必出)数字分割出各个位数例如:给你一个数字486,把它的各个位数分割出来,然后做一些操作486 ====> 分割成 4 8 6,可以取模操作(%),把各个位数一个个取出

2022-01-09 17:38:45 11351 2

原创 js实现2048小游戏

2048小游戏2048小游戏(带动画效果)所用语言html、css、JavaScript通过上下左右进行控制,实现了移动、合并等功能github地址线上测试地址效果图实现功能1.新建游戏先清空方格和分数,再随机两个位置,生成2或者4数字2.移动数字移动包括:上、下、左、右监控键盘事件keyCode例如:用户向上时,从每一行开始遍历,当遍历到某个小方格有数字时,就判断它上方有没有其他数字,如果也有,就让他们合并,然后标记一下,因为一个方格只能合并一次。其他方向类比。3.新出现的

2021-08-25 22:13:58 458

原创 深入理解js原型、原型链

1.理解对象从typeof运算符开始function show(x) { console.log(typeof x); // undefined console.log(typeof 10); // number console.log(typeof 'abc'); // string console.log(typeof true); // boolean console.log(typeof function () {}); //function cons

2021-08-12 19:06:40 160

原创 深入理解js闭包

闭包的定义简单讲:闭包就是指有权访问另一个函数作用域中的变量的函数。MDN这样定义:闭包是一种特殊的对象。它由两部分构成:函数,以及创建该函数的环境。环境由闭包创建时在作用域中的任何局部变量组成。执行上下文和作用域作用域就是一套规则,用于确定在何处以及如何查找变量(标识符)的规则三种作用域类型:全局作用域:全局作用域为程序的最外层作用域,一直存在。函数作用域:函数作用域只有函数被定义时才会创建,包含在父级函数作用域 / 全局作用域内。块级作用域:块级作用域由最近的一对包

2021-08-12 11:30:39 169

原创 (三)阅读器开发

核心工作原理1.电子书的解析和渲染在Ebook.vue组件的script中包含以下代码import Epub from "epubjs"const BookUrl = '/static/2018_Book_AgileProcessesInSoftwareEngine.epub'export default { methods: { //电子书的解析和渲染 showEpub () { //生成book this.book = new Epub(BookU

2021-03-10 18:45:10 527 4

原创 (二)开发准备工作

1.安装脚手架环境vue init webpack --offline ebook-demo访问站点npm run dev这时可以在 http://localhost:8080/访问站点也可以去更改这个访问地址在config/index.js里更改host将host改为‘0.0.0.0’,则通过本地的ip地址可以访问2.下载依赖包下载scss的支持npm install node-sass sass-loader --save-dev如果遇到版本过高报错,可以先卸载再重新装

2021-03-09 14:12:09 102

原创 (一)阅读器的工作原理及开发流程

此次demo是按照慕课网教程一点点实现简介:通过Vue.js来实现一个手机阅读器,实现电子书的阅读功能,以及一些辅助功能,如翻页、字号设置、主题设置、阅读进度调整和电子书目录。前置知识Vue.js的基本语法css3和scss的基本语法静态资源服务器(Nginx)的搭建方法知识点解析ePub 电子出版物,是现在比较主流的电子书格式开发流程阅读器的工作原理简介epubjs的核心工作原理解析...

2021-03-09 13:22:15 797 1

原创 对象,类与面向对象-JavaScript红宝书笔记

1. 理解对象1.1 属性的类型属性分两种:数据属性和访问器属性。。为了将某个特性标识为内部特性,规范会用两个中括号把特性的名称括起来,比如[[Enumerable]]1.1.1 数据属性数据属性有4个特性• [[Configurable]]:表示属性是否可以通过 delete 删除并重新定义,是否可以修改它的特性,以及是否可以把它改为访问器属性。默认为true。• [[Enumerable]]:表示属性是否可以通过 for-in 循环返回,是否可以遍历。默认为 true,• [[Writa

2021-02-09 21:15:14 124 1

原创 网络请求与远程资源-JavaScript红宝书笔记

网络请求与远程资源1. XMLHttpRequest 对象1.1 使用 XHR1.2 HTTP 头部1.3 GET 请求1.4 POST 请求1.5 XMLHttpRequest Level 21.5.1 FormData 类型1.5.2 超时1. XMLHttpRequest 对象构造函数定义:let xhr = new XMLHttpRequest();1.1 使用 XHRopen()方法三个参数:请求类型请求 URL是否异步的布尔值xhr.open("get", "examp

2021-02-04 14:09:42 123

原创 JSON-JavaScript红宝书笔记

文章目录JSON1. 语法1.1 简单值1.2 对象1.3 数组2. 解析与序列化2.1 JSON 对象2.2 序列化选项toJSON()方法2.3 解析选项JSON1. 语法json支持三种类型:简单值:字符串、数值、布尔值和 null 可以在 JSON 中出现,。特殊值 undefined 不可以。对象:第一种复杂数据类型,对象表示有序键/值对。每个值可以是简单值,也可以是复杂类型。数组:第二种复杂数据类型,数组表示可以通过数值索引访问的值的有序列表。数组的值可以是任意类型,包括简单值、对

2021-02-04 11:45:03 84

原创 DOM扩展-js红宝书笔记

文章目录1. Selectors API1.1 querySelector()1.2 querySelectorAll()1.3 matches()2. 元素遍历3. HTML53.1 CSS 类扩展3.2 classList 属性3.2 焦点管理3.3 HTMLDocument 扩展3.3.1 readyState 属性3.3.2 compatMode 属性3.3.3 head 属性3.4 字符集属性3.5 自定义数据属性3.6 插入标记3.6.1 innerHTML 属性1. Selectors AP

2021-02-02 23:05:33 111

原创 DOM之DOM编程-js红宝书笔记

文章目录1.DOM编程1.1动态脚本1.2动态样式1.3 使用 NodeList1.DOM编程1.1动态脚本<script src="foo.js"></script>如果想要向网页中动态添加上述语句,可以这样写:let script = document.createElement("script"); script.src = "foo.js"; document.body.appendChild(script);//封装成函数function loadSc

2021-02-02 18:54:36 67

原创 DOM-节点层级-js红宝书笔记

DOM(Document Object Model)文档对象模型是 HTML 和 XML 文档的编程接口。文章目录1. 节点层级1.1 Node 类型1.1.1 nodeName 与 nodeValue1.1.2 节点关系父节点parentNode 属性兄弟节点,previousSibling(上一个) 和 nextSibling(下一个)1.1.3 操纵节点1.1.4 其他方法2. Document 类型1.2.1 文档子节点1.2.2 文档信息1.2.3 定位元素1.2.4 特殊集合1.2.5 文档写

2021-02-01 21:19:31 167

原创 BOM编程-js红宝书笔记

BOM(Browser Object Model)浏览器对象模型,BOM 是使用 JavaScript 开发 Web 应用程序的核心。1. window 对象BOM 的核心是 window 对象,表示浏览器的实例。window 对象在浏览器中有两重身份,一个是ES 中的 Global 对象,另一个就是浏览器窗口的 JavaScript 接口。1.1 Global 作用域由于 window 对象被复用为 ECMAScript 的 Global 对象所以通过 var 声明的所有全局变量和函数都会变成

2021-01-31 22:00:45 121

原创 JavaScript尾调用优化-js学习笔记

读JavaScript红宝书时看到了这个,感觉需要单独拿出来记笔记。1. 什么是尾调用优化?尾调用优化是ES6规范新增的一项内存管理优化机制,让 JavaScript 引擎在满足条件时可以重用栈帧。function outerFunction() { return innerFunction(); // 尾调用}ES6优化之前,执行这个代码会在内存中发生如下操作:(1) 执行到 outerFunction 函数体,第一个栈帧被推到栈上。(2) 执行 outerFunction 函数体,

2021-01-31 19:01:58 343

原创 第十章-函数(下)-js红宝书笔记

1. 函数内部函数内部存在两个特殊的对象:arguments 和 this。ES6新增了new.target 属性。1.1 arguments一个类数组对象,包含调用函数时传入的所有参数。之前已经多次提到,arguments对象还有一个 callee 属性,是一个指向 arguments 对象所在函数的指针。function factorial(num) { if (num <= 1) { return 1; } else { return num * arguments.c

2021-01-31 18:34:57 93

原创 对javascript中浅拷贝和深拷贝以及赋值的理解

JS浅拷贝的概念MDN官方并没有给出明确定义,网上很多文章也容易误导人,浅拷贝不单单是指向同一个对象。另外一个博主总结的拷贝Tz一号先从赋值说起:1.赋值赋值是将某一数值或对象赋给某个变量的过程,分为:1.1、基本数据类型:赋值,赋值之后两个变量互不影响 let a=1; let b=1; console.log(a);//1 console.log(b);//1 //基本数据类型不会相互影响1.2、引用数据类型:赋址

2021-01-30 20:54:05 98

原创 第10章-函数-红宝书笔记

函数函数也是对象每个函数都是Function类型的实例,而 Function 也有属性和方法函数名是指向函数对象的指针,而且不一定与函数本身紧密绑定定义函数声明的方式function sum (num1, num2) { return num1 + num2; }函数表达式let sum = function(num1, num2) { return num1 + num2; };箭头函数let sum = (num1, num2) => { r

2021-01-29 22:32:37 177

原创 第6章下-集合引用类型-红宝书笔记

Map创建const m = new Map();初始化实例// 使用嵌套数组初始化映射const m1 = new Map([ ["key1", "val1"], ["key2", "val2"], ["key3", "val3"] ]); alert(m1.size); // 3set()方法添加键/值m.set("firstName", "Matt") .set("lastName", "Frisbie");get()方法,获取某个键的值console.l

2021-01-29 18:05:04 102

原创 第6章-集合引用类型-红宝书笔记

Object显式创建实例的两种方式第一种 new操作符let person = new Object(); person.name = "Nicholas"; person.age = 29;第二种 对象字面量let person = { name: "Nicholas", age: 29 };属性名可以是字符串或数值,但是数值属性会自动转换为字符串所以可以认为所有属性名都是字符串形式的引用object的属性有两种方式person.name//带点方式person["

2021-01-19 21:21:51 128

原创 第5章-基本引用类型-红宝书笔记

Datelet someDate = new Date();console.log(someDate)//Mon Jan 18 2021 15:57:59 GMT+0800 (中国标准时间)很多浏览器会选择用当前日期替代越界的日期不传入参数创建的对象保存的是当前日期和时间Date.parse()方法let someDate = new Date(Date.parse("May 23, 2019"));等价于let someDate = new Date("May 23, 2019");

2021-01-18 21:43:32 116

原创 第三章 语言基础 JS红宝书笔记

语法严格模式 use strict在脚本开头加上这一行:“use strict”;ECMAScript 3 的一些不规范写法在这种模式下会被处理,对于不安全的活动将抛出错误。也可以单独指定一个函数在严格模式下执行,只要把这个预处理指令放到函数体开头即可:function doSomething() { "use strict"; // 函数体 }语句加分号也有助于在某些情况下提升性能,因为解析器会尝试在合适的位置补上分号以纠正语法错误。let sum = a + b /

2021-01-13 22:56:23 126

原创 第二章 HTML中的JavaScript 红宝书笔记

在使用行内 JavaScript 代码时,要注意代码中不能出现字符串。比如,下面的代码会导致浏览器报错: <script> function sayScript() { console.log("</script>"); } </script>想避免这个问题,只需要转义字符“\”即可:<script> function sayScript() { console.log("<\/script>"); } &l.

2021-01-12 19:51:31 87

原创 关于let和var的块作用域问题

JS中没有块级作用域,只有全局作用域和函数作用域;let定义的变量让其产生了块级作用域。Var没有块级作用域Let有块级作用域直接报错,因为离开了块级,变量不存在Var有变量声明提升函数声明和变量声明会被解释器“提升”到方法体的最顶部注意:只有声明会被“提升”,赋值不会被提升下面这样会直接报错当函数体中有定义变量时,则不会报错,会undefinedLet无变量声明提升下面代码会直接报错,所以声明let变量时要放在函数头部函数声明提升通过函数声明表达式,这样就不会造成覆

2021-01-12 16:05:43 216 1

原创 【python爬虫】完美隐藏window.navigator.webdriver,防止浏览器检测到selenium

某些网站滑动条验证码很恶心所以加上以下验证可以防止网站JS检测到seleniumoption=webdriver.ChromeOptions()option.add_experimental_option('excludeSwitches',['enable-automation'])driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{"source":"""Object.de...

2020-08-24 19:05:34 1279

原创 Fire Net(HDU-1045)二进制枚举练习

题目链接题目大意:在图中建造炮塔,在互相不能对轰的情况下,最多建造多少个炮塔题解:二进制枚举所有点的情况,每个点装炮塔和不装炮塔,检查时从左上角的点到右下角的点,每遇到炮塔就检查这个炮塔右边一行和下方一列#include<iostream>#include<cstring>#include<algorithm>using namespace std;int n;bool m[10][10];bool v[10][10];int fun

2020-08-17 17:56:10 127

原创 强连通分量

强连通分量割点针对无向连通图,若删除一个点后使得该图不连通,则该点是割点。void tarjan(int x,int fa){//记录一个fa,代表当前点的父亲 dfn[x]=low[x]=++tot; int child=0;//以x为根的子树的个数 for(int e=head[x];e;e=nxt[e]){ if(!dfn[to[e]]){ tarjan(to[e],x);//扩展 low[x]=min

2020-08-13 17:14:05 121 1

原创 最短路模板

最短路Dijkstra算法(常用)·有重边的情况下尽量用邻接表存图·记得处理第一个加入集合的点·Dijkstra算法没法处理负权边基础版本voiddijkstra(ints){//记得处理第一个加入集合的点 for(inti=1;i<=n;i++)dis[i]=inf; dis[s]=0; for(inti=1;i<=n;i++) { intk=0; for(i...

2020-07-24 20:43:09 104

原创 Vscode 配置c/c++环境 坑点

以下默认已经安装最新版的vscode配置编译器下载MinGW下载地址:https://sourceforge.net/projects/mingw-w64/files/下载的文件:进入网站后不要点击"Download Lasted Version",往下滑,找到最新版的 "x86_64-posix-seh"。下载完安装完后配置环境变量Path里面添加一个 “D:\mingw64\bin”,路径就是刚才安装MinGW的路径编写配置文件在代码的头文件夹里要有一个文件夹名.

2020-05-31 20:09:13 3316 3

原创 (洛谷题单)【数据结构1-4】图的基本应用

P5318 【深基18.例3】查找文献思路:dfs和bfs,注意已经遍历到的要进行标记,因为图中存在环vector的排序:sort(g.begin(),g.end());#include<bits/stdc++.h>#define ll long long#define inf 0x3f3f3f3f#define llinf 0x3f3f3f3f3f3f3f3fusing...

2020-04-23 10:14:08 154

原创 最小生成树例题

luoguP1265 公路修建:https://www.luogu.com.cn/problem/P1265大致题意:给n个城市的位置,城市之间修建公路,每次选择最短的一条路进行修建,直到直接或者间接城市联通题解:最小生成树prim算法模板题,要注意的是本题不需要预处理城市之间的距离,当(n≤5000)如果预处理两两城市之间的距离,需要开double数组25000005,内存大约占190MB,...

2020-04-20 14:57:52 599

原创 最小生成树模板(Kruskal算法和prim算法)

Kruskal算法模板洛谷模板题目链接:https://www.luogu.com.cn/problem/P3366Kruskal算法将一个连通块当做一个集合,先对所有边进行一次排序,然后按顺序枚举每一条边,当此条边的两个点满足不属于同一个集合的时候,如果这条边连接的两个点属于同一集合,就跳过。直到选取了n-1条边为止。这里实用并查集对集合进行维护。#include<ios...

2020-04-19 18:47:00 280

原创 牛客PAT乙级题库 1005德才论 1006部分A+B

德才论 (25) 时间限制1000 ms内存限制32768 KB代码长度限制100 KB判断程序Standard(来自小小)题目描述宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数...

2020-04-01 11:59:21 114

原创 牛客PAT乙级题库1003数素数 1004福尔摩斯的约会

1003数素数 (20) 时间限制1000 ms内存限制32768 KB代码长度限制100 KB判断程序Standard(来自小小)题目描述令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。输入描述:输入在一行中给出M和N,其间以空格分隔。输出描述:输出从PM...

2020-03-31 19:25:15 151

原创 埃式筛法,线性筛求素数

1.最简单的算法O(√n)bool isPrime(int n){ for(int i=2;i<int(sqrt(n)+1);i++){ if(n%i==0) return false; } return true;}2.埃式筛法算法O(nloglogn)int prime[MAXN];bool is_pri[MAXN];int cnt=0;...

2020-03-31 18:17:06 256

空空如也

空空如也

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

TA关注的人

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