自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 问答 (5)
  • 收藏
  • 关注

原创 PaddleOCR 初尝试 以及模型训练时遇到的问题以及解决过程

paddle re模型训练,ocr识别使用

2023-07-10 13:12:40 1184 6

原创 Js 栈和队列

栈// 栈 先进后出class Stack { constructor(arr) { this.arr = arr; } // 入栈 push(val){ this.arr.push(val); } // 出栈 pop(){ this.arr.pop(); }}const stack = new Stack([]);stack.push(1);stack.push(2);sta

2021-12-31 01:16:29 546

原创 Solidity 数组、结构体、Mapping、枚举

Solidity数组MappingEnum结构体数组数组可以在声明时指定长度,也可以动态调整大小。 对于 存储storage 的数组来说,元素类型可以是任意的(即元素也可以是数组类型,映射类型或者结构体)。 对于 内存memory 的数组来说,元素类型不能是映射类型,如果作为 public 函数的参数,它只能是 ABI 类型。一个元素类型为 T,固定长度为 k 的数组可以声明为 T[k],而动态数组声明为 T[]。 举个例子,一个长度为 5,元素类型为 uint 的动态数组的数组,应声明为 uint

2021-12-31 01:07:42 1285

原创 Js 快速排序

快速排序1、从数列中挑出一个元素,称为 “基准”(pivot);2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;2、递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;简单方法function kp(arr, num = arr[0]) { let base_num = num let rig

2021-12-29 17:01:20 476

原创 Js 选择排序

快速排序排序步骤首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。// 内层循环中找到每一圈一个最大的 然后放到后面Array.prototype.mysort = function (compare = (a,b)=>(a>b)) { const len = this.length; let newArr = this; const exch

2021-12-29 11:36:54 355

原创 Js冒泡排序

冒泡排序const arr = [3,3,134,12,312];// 排序Array.prototype.mysort = function (compare = (a,b)=>(a<b)){ const len = this.length; let newArr = this; // 相互交换 const exchange = (arr,a,b) => { const temp = arr[a]; arr[a] = arr[b]; arr[b] = temp;

2021-12-29 10:47:50 315

原创 Solidity 构造函数以及事件 和 修饰符

Solidity修饰器 modifier构造函数继承可见性事件修饰器 modifiercontract Test { adress owner; // 自己手写个修改器 //function OnlyOwner(address _owner) internal { // require(_owner == msg.sedner,'Error') //} // 官方写法, 可以进行传参 // 修改器也是可以进行多个使用的 modifier onlyOwner(address _o

2021-12-29 00:39:53 11883

原创 Solidity 值类型、变量 和 函数

Solidity 变量 和 函数类型整型字符串布尔类型地址类型全局变量BlockMsgtx函数类型整型int / uint :分别表示有符号和无符号的不同位数的整型变量。 支持关键字 uint8 到 uint256 (无符号,从 8 位到 256 位)以及 int8 到 int256,以 8 位为步长递增。 uint 和 int 分别是 uint256 和 int256 的别名。contract Base { // 整型应该和 java 或者 c 等强类型语言差不多 uint num = 1

2021-12-26 23:41:21 11570

原创 Solidity hello World

SolidityHello WorldHello World// SPDX-License-Identifier: GPL-3.0pragma solidity >=0.7.0 <0.9.0;contract Func { string public str = "Hello World"; // 声明一个变量 赋值为hello world // 写一个函数可以修改 str 变量的值 function setStr(string memory _str) public {

2021-12-26 01:02:47 185

原创 Solidity开发 初探

Solidity开发 初探编辑器文档网址编辑器https://remix.ethereum.org/ 编辑器是网站版的,不过可以也可以使用vscode 安装插件开发文档网址中文网址 https://learnblockchain.cn/docs/solidity/introduction-to-smart-contracts.html?highlight=event英文网址 https://docs.soliditylang.org/en/v0.8.11/...

2021-12-26 00:50:53 10428

原创 浅谈 react组件和组件属性组件状态 (第三节)

组件和组件属性组件:包含内容、样式和功能的UI单元创建一个组件特别注意:组件的名称首字母必须大写函数组件返回一个React元素类组件必须继承React.Component必须提供render函数,用于渲染组件组件的属性对于函数组件,属性会作为一个对象的属性,传递给函数的参数对于类组件,属性会作为一个对象的属性,传递给构造函数的参数注意:组件的属性,应该使用小驼峰命名法组件无法改变自身的属性。之前学习的React元素,本质上,就是一个组件(内置组件)React中的

2021-07-15 12:40:14 155

原创 如何在浏览器端实现模块化 (webpack学习编第一节)

如何在浏览器端实现模块化文章目录如何在浏览器端实现模块化浏览器端的模块化根本原因解决办法常见的构建工具浏览器端的模块化问题:效率问题:精细的模块划分带来了更多的JS文件,更多的JS文件带来了更多的请求,降低了页面访问效率兼容性问题:浏览器目前仅支持ES6的模块化标准,并且还存在兼容性问题工具问题:浏览器不支持npm下载的第三方包这些仅仅是前端工程化的一个缩影当开发一个具有规模的程序,你将遇到非常多的非业务问题,这些问题包括:执行效率、兼容性、代码的可维护性可扩展性、团队协作、测试等等等等

2021-07-13 09:48:41 200

原创 react Hello wrold到JSX语法规范(第二节)

文章目录Hello WorldReact.createElementJSX使用脚手架搭建工程开发环境搭建VSCode配置VSCode插件安装Chrome插件安装JSX什么是JSX在JSX中嵌入表达式元素的不可变性Hello World直接在页面上使用React,引用下面的JS<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script><script cros

2021-07-13 01:18:55 149

原创 git相关命令行 实战常用

git 常用命令。创建SSH Key$ ssh-keygen -t rsa -C "youremail@example.com"配置用户信息$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"仓库在当前目录新建一个Git代码库$ git init新建一个目录,将其初始化为Git代码库$ git init [pro

2021-07-13 00:59:27 178 1

原创 react介绍——react第一节

React概述官网:https://react.docschina.org/什么是React?React是由Facebook研发的、用于解决UI复杂度的开源JavaScript库,目前由React联合社区维护。它不是框架,只是为了解决UI复杂度而诞生的一个库React的特点轻量:React的开发版所有源码(包含注释)仅3000多行原生:所有的React的代码都是用原生JS书写而成的,不依赖其他任何库易扩展:React对代码的封装程度较低,也没有过多的使用魔法,所以React中的很多

2021-07-09 10:39:16 95

原创 c1认证-任务2 网络相关

我的目标了解计算机网络基础,更加深入的提升至自己,争取进大厂任务一网络抓包工具的使用 通过半天的研究找到了合适的工具并取得了成功使用抓包工具把缺失的值传进去,然后请求就成功咯任务二使用工具模拟网络通信网络测试工具当我们不知道两个用户的IP 但是知道主机名 通过DNS去获取 可以得到 然后去相互通信通过练习我们可以亲自去体验网络通信其实这样的例子在我们工作中特别常见需要重视的...

2021-06-10 14:52:15 106

原创 计算机基础学习,进制与编码(C1认证第一阶段)

计算机基础知识C1能力认证使用 0 和 1 绘图上面是这个是我自己画的,下面是链接,大家可以试试https://studio.code.org/s/pixelation/lessons/1/levels/1红框圈住的我们可以去自己敲着试试,这个是改变图片大小...

2021-05-03 18:11:50 737 2

转载 vue下在文件报错

vue项目中下载文件踩过的坑(一)很多的系统管理端会有文件上传或者下载功能,那么在文件上传和下载的时候我们又会遇到什么样的坑人的意外呢?昨天我们在做管理系统的文件下载时,遇到了这么一个问题。因为文件名是后端提供,所以返回在了响应头的Content-Disposition中,但是因为这个字段并不是默认暴露的字段,所以需要后端做暴露(加上这句代码)Access-Control-Expose-Headers: Content-Disposition在前端接收到后端暴露的响应头字段时,在请求拦截器中拿到并

2020-11-28 11:16:59 871

原创 vue相关指令的使用及讲解

文章目录Vue相关指令v-prev-cloakv-oncev-textv-htmlVue相关指令具有特殊含义、拥有特殊功能的特性指令带有v-前缀,表示它们是Vue提供的特殊特性指令可以直接使用data中的数据v-pre跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。<!-- 不会被编译 --><span v-pre>{{ msg }}</span>v-cloak这个指令保持在

2020-11-06 08:39:25 147

原创 vue的响应式2

vue的响应式-2除了未被声明过和未被渲染的数据外,还有什么数据更改后不会渲染页面?1. 利用索引直接设置一个数组项时:<!-- 即使向数组中添加了第4项,数组仍然显示3项 --><!-- 咳咳,一家三口,有第4个人也不能摆出来给大家看呀~ --><div id="app">{{ list }}</div>const vm = new Vue({ el: '#app' data: { dengFamily: ['

2020-11-06 08:36:21 101

原创 vue面试题(六)

文章目录面试题vue中路由导航钩子函数有哪些?简要说明它们的参数及作用。在vue中使用axios时如何解决跨域问题?vue中如何同时获取事件传入的参数和事件对象?如何实现动态组件、且实现组件的缓存?过滤器的作用是什么?如何注册过滤器?如何使用过滤器?简单运用一下作用域插槽?vue如何注册自定义指令,常用钩子有哪些,做什么?vue表单的核心内容是什么?表单修饰符有哪些?需要注意什么?vue如何注册一个组件,需要有哪些注意点?ElementUI是什么?如何运用到vue项目中?面试题vue中路由导航钩子函数有

2020-11-06 08:27:53 140

原创 vue面试题(五)

文章目录面试题vue中key值的作用?watch和computed的区别?对于vue是一套渐进式框架的理解?如何解决axios中的post提交参数不解析的问题?axios的基础方法有哪些?vuex的核心概念有哪些,分别表示什么含义?路由同组件跳转,组件将不会更新,如何解决这个问题?vue中哪些方法可以实现页面之间传参,且如何获取到值?vue-router 基本使用步骤?请说明在vue中组件之间如何进行数据传递?面试题vue中key值的作用?在v-for时使用,标识组件的唯一性,更好的区分组件,高效的更

2020-11-02 19:23:19 223 1

原创 vue的响应式1

文章目录vue的响应式-1vm.$elvm.$nextTick & Vue.nextTickvue的响应式-1数据变化,页面就会重新渲染怎么更改数据?so easy <div id="app"> {{ mrDeng }} </div> const vm = new Vue({ el: '#app', data: { mrDeng: '邓哥:风姿绰约、花枝招展' } }); vm.mrDeng

2020-11-02 19:21:34 182 2

原创 vue面试题 (四)

文章目录标题组件中的data为什么不是一个对象,而是一个函数?vue中第一次页面加载会触发那几个声明周期钩子函数?vue.js的两个核心是什么?vue中key值得作用?v-show和v-if的区别?分别说明其使用场景vue常用的修饰符有哪些,并简要说明它们的作用?过滤器的作用是什么?如何注册过滤器?如何使用过滤器?vue实例中有哪些常见的配置选项,分别用来干嘛?vue中数组发生改变了,但是页面没有渲染,怎么办?组件中的data为什么不是一个对象而是一个函数?标题组件中的data为什么不是一个对象,而是一个

2020-10-29 23:34:29 129

原创 vue学习开始

VUE 第一章文章目录VUE 第一章开始使用Vueel$mountdata插值表达式开始使用Vue引入vue.js官网:vuejs.org开发版本:包含完整的警告和调试模式生产版本:删除了警告,体积更小引入vue.js后,给我们提供了一个构造函数 Vue在js中,new Vue()new Vue() 后会返回一个vue实例对象,我们用变量接着它const vm = new Vue()传递一个配置对象{} – > const vm = new V

2020-10-29 23:01:49 140

原创 前端自学途径

怎么更好的自学首先咱这门技术大部分是外国人创造的 所以English 咱不需要惧怕 不会了搜一搜,还是克服一下咯,毕竟不是用咱的 中文开发的(很多nb的东西都是英文的哦);网址1.菜鸟教程2.w3cschool 自学网址;3.CSDN博客园里面有许多大牛分享的技术文章,也可以关注我,看我的学习日常4.W3C 可以在里面查一些东西;5.MDN (这个网址上面的API较全,WEB源码都在这 )6.腾讯课堂的一些公开课也有干货哦7.哔哩哔哩8.慕课网...

2020-10-28 19:21:53 358

原创 ES6的Map集合

map集合键值对(key value pair)数据集合的特点:键不可重复map集合专门用于存储多个键值对数据。在map出现之前,我们使用的是对象的方式来存储键值对,键是属性名,值是属性值。使用对象存储有以下问题:键名只能是字符串获取数据的数量不方便键名容易跟原型上的名称冲突如何创建mapnew Map(); //创建一个空的mapnew Map(iterable); //创建一个具有初始内容的map,初始内容来自于可迭代对象每一次迭代的结果,但是,它要求每一次迭代的

2020-10-28 18:15:13 116

原创 ES6 Set集合

set 集合一直以来,JS只能使用数组和对象来保存多个数据,缺乏像其他语言那样拥有丰富的集合类型。因此,ES6新增了两种集合类型(set 和 map),用于在不同的场景中发挥作用。set用于存放不重复的数据如何创建set集合new Set(); //创建一个没有任何内容的set集合new Set(iterable); //创建一个具有初始内容的set集合,内容来自于可迭代对象每一次迭代的结果如何对set集合进行后续操作add(数据): 添加一个数据到set集合末尾,如果数据

2020-10-28 18:12:06 157

原创 生成器 (Generator)

生成器 (Generator)什么是生成器?生成器是一个通过构造函数Generator创建的对象,生成器既是一个迭代器,同时又是一个可迭代对象如何创建生成器?生成器的创建,必须使用生成器函数(Generator Function)如何书写一个生成器函数呢?//这是一个生成器函数,该函数一定返回一个生成器function* method(){}生成器函数内部是如何执行的?生成器函数内部是为了给生成器的每次迭代提供的数据每次调用生成器的next方法,将导致生成器函数运行

2020-10-26 18:01:54 883

原创 可迭代协议 与 for-of 循环(ES6)

可迭代协议 与 for-of 循环可迭代协议概念回顾迭代器(iterator):一个具有next方法的对象,next方法返回下一个数据并且能指示是否迭代完成迭代器创建函数(iterator creator):一个返回迭代器的函数可迭代协议ES6规定,如果一个对象具有知名符号属性Symbol.iterator,并且属性值是一个迭代器创建函数,则该对象是可迭代的(iterable)思考:如何知晓一个对象是否是可迭代的?思考:如何遍历一个可迭代对象?for-of 循环for-of 循环

2020-10-26 18:00:57 139

原创 迭代器

迭代器背景知识什么是迭代?从一个数据集合中按照一定的顺序,不断取出数据的过程迭代和遍历的区别?迭代强调的是依次取数据,并不保证取多少,也不保证把所有的数据取完遍历强调的是要把整个数据依次全部取出迭代器对迭代过程的封装,在不同的语言中有不同的表现形式,通常为对象迭代模式一种设计模式,用于统一迭代过程,并规范了迭代器规格:迭代器应该具有得到下一个数据的能力迭代器应该具有判断是否还有后续数据的能力JS中的迭代器JS规定,如果一个对象具有next方法,并且该方法返回一

2020-10-26 17:59:52 268

原创 Fetch Api 概述

Fetch Api 概述XMLHttpRequest的问题所有的功能全部集中在同一个对象上,容易书写出混乱不易维护的代码采用传统的事件驱动模式,无法适配新的 Promise ApiFetch Api 的特点并非取代 AJAX,而是对 AJAX 传统 API 的改进精细的功能分割:头部信息、请求信息、响应信息等均分布到不同的对象,更利于处理各种复杂的 AJAX 场景使用 Promise Api,更利于异步代码的书写Fetch Api 并非 ES6 的内容,属于 HTML5 新增的 Web

2020-10-26 17:56:53 188

原创 fetach 的基本使用

基本使用使用 fetch函数即可立即向服务器发送网络请求参数该函数有两个参数:必填,字符串,请求地址选填,对象,请求配置请求配置对象method:字符串,请求方法,默认值GETheaders:对象,请求头信息body: 请求体的内容,必须匹配请求头中的 Content-Typemode:字符串,请求模式cors:默认值,配置为该值,会在请求头中加入 origin 和 refererno-cors:配置为该值,不会在请求头中加入 origin 和 referer,跨域的时候可能

2020-10-23 19:25:03 406

原创 async 和 await

async 和 awaitasync 和 await 是 ES2016 新增两个关键字,它们借鉴了 ES2015 中生成器在实际开发中的应用,目的是简化 Promise api 的使用,并非是替代 Promise。async目的是简化在函数的返回值中对Promise的创建async 用于修饰函数(无论是函数字面量还是函数表达式),放置在函数最开始的位置,被修饰函数的返回结果一定是 Promise 对象。async function test(){ console.log(1);

2020-10-23 14:10:31 150 1

原创 ES6 中的Promise

ES6 的Promise基本使用const pro = new Promise((resolve, reject)=>{ // 未决阶段的处理 // 通过调用resolve函数将Promise推向已决阶段的resolved状态 // 通过调用reject函数将Promise推向已决阶段的rejected状态 // resolve和reject均可以传递最多一个参数,表示推向状态的数据})pro.then(data=>{ //这是thenable函

2020-10-22 23:22:29 121

原创 异步处理的通用模型

8-2. 异步处理的通用模型ES官方参考了大量的异步场景,总结出了一套异步的通用模型,该模型可以覆盖几乎所有的异步场景,甚至是同步场景。值得注意的是,为了兼容旧系统,ES6 并不打算抛弃掉过去的做法,只是基于该模型推出一个全新的 API,使用该API,会让异步处理更加的简洁优雅。理解该 API,最重要的,是理解它的异步模型ES6 将某一件可能发生异步操作的事情,分为两个阶段:unsettled 和 settledunsettled: 未决阶段,表示事情还在进行前期的处理,并没有发生通向结果

2020-10-21 11:40:44 196

原创 事件和回调函数的缺陷

事件和回调函数的缺陷我们习惯于使用传统的回调或事件处理来解决异步问题事件:某个对象的属性是一个函数,当发生某一件事时,运行该函数dom.onclick = function(){}回调:运行某个函数以实现某个功能的时候,传入一个函数作为参数,当发生某件事的时候,会运行该函数。dom.addEventListener("click", function(){})本质上,事件和回调并没有本质的区别,只是把函数放置的位置不同而已。一直以来,该模式都运作良好。直到前端工程越来越复杂…目

2020-10-21 11:26:12 435

原创 ES6 解构(六)

解构什么是解构使用ES6的一种语法规则,将一个对象或数组的某个属性提取到某个变量中解构不会对被解构的目标造成任何影响对象解构在解构中使用默认值{同名变量 = 默认值}非同名属性解构{属性名:变量名}数组解构let a = 1, b = 2;[b, a] = [a, b]console.log(a, b)//2 1const numbers = [324, 7, 23, 5, 3243];// 得到数组前两项,分别放到变量a和b中,然后剩余的所有数据放到数组nu

2020-10-20 17:46:36 102

原创 ES6概述(一)

ES6 课程概述ECMAScript、JavaScript、NodeJs,它们的区别是什么?ECMAScript:简称ES,是一个语言标准(循环、判断、变量、数组等数据类型)JavaScript:运行在浏览器端的语言,该语言使用ES标准。 ES + web api = JavaScriptNodeJs:运行在服务器端的语言,该语言使用ES标准。 ES + node api = JavaScript无论JavaScript,还是NodeJs,它们都是ES的超集(super set)ECMAS

2020-10-20 17:25:06 214

原创 vue面试题(三)

vue面试题(三)route和route和route和router的区别? $route 路由信息 $router 用来做路由跳转Vue路由实现:hash 和history 模式的区别? 区别: hash模式: 1.采用的是window.onhashchange事件实现。 2.可以实现前进 后退 刷新。 3.比如这个URL:http://www.abc.com/#/hello, hash 的值为#/hello。它的特点在于:hash 虽然出现URL中,但不会被包含在HTT

2020-10-20 00:12:26 137

空空如也

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

TA关注的人

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