自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

龙衣

享受当下生活。

  • 博客(300)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

转载 入门前端-《JavaScript 语言入门教程-iterator 迭代器》

可迭代(Iterable) 对象是数组的泛化。这个概念是说任何对象都可以被定制为可在 for..of循环中使用的对象。数组是可迭代的。但不仅仅是数组。很多其他内建对象也都是可迭代的。例如字符串也是可迭代的。Symbol.iterator例如,我们有一个对象,它并不是数组,但是看上去很适合使用 for..of 循环。比如一个 range 对象,它代表了一个数字区间:let range = { from: 1, to: 5};// 我们希望 for..of 这样运行:// for.

2021-07-20 21:11:07 150

转载 入门前端-《JavaScript 语言入门教程-this关键字》

涵义this关键字是一个非常重要的语法点。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。前一章已经提到,this可以用在构造函数之中,表示实例对象。除此之外,this还可以用在别的场合。但不管是什么场合,this都有一个共同点:它总是返回一个对象。简单说,this就是属性或方法“当前”所在的对象。实质JavaScript 语言之所以有 this 的设计,跟内存里面的数据结构有关系。var obj = { foo: 5 };上面的代码将一个对象赋值给变量obj。Java

2021-06-30 21:53:56 142

转载 入门前端-《JavaScript 语言入门教程-对象继承》

原型对象概述构造函数的缺点JavaScript 通过构造函数生成新对象,因此构造函数可以视为对象的模板。实例对象的属性和方法,可以定义在构造函数内部。function Cat (name, color) { this.name = name; this.color = color;}var cat1 = new Cat('大毛', '白色');cat1.name // '大毛'cat1.color // '白色'通过构造函数为实例对象定义属性,虽然很方便,但是有一个缺点。同

2021-06-30 21:44:10 135

转载 入门前端-《JavaScript 语言入门教程-Object 对象的相关方法》

Object.getPrototypeOf()Object.getPrototypeOf方法返回参数对象的原型。这是获取原型对象的标准方法。var F = function () {};var f = new F();Object.getPrototypeOf(f) === F.prototype // trueObject.setPrototypeOf()Object.setPrototypeOf方法为参数对象设置原型,返回该参数对象。它接受两个参数,第一个是现有对象,第二个是原型对

2021-06-30 21:31:53 120

转载 入门前端-《JavaScript 语言入门教程-严格模式》

除了正常的运行模式,JavaScript 还有第二种运行模式:严格模式(strict mode)。顾名思义,这种模式采用更加严格的 JavaScript 语法。同样的代码,在正常模式和严格模式中,可能会有不一样的运行结果。一些在正常模式下可以运行的语句,在严格模式下将不能运行。总之,严格模式体现了 JavaScript 更合理、更安全、更严谨的发展方向。启用方法进入严格模式的标志,是一行字符串use strict。'use strict';老版本的引擎会把它当作一行普通字符串,加以忽略。新版.

2021-06-30 21:24:36 158

转载 入门前端-《JavaScript 语言入门教程-Object 对象》

Object 对象JavaScript 原生提供Object对象(注意起首的O是大写),本章介绍该对象原生的各种方法。JavaScript 的所有其他对象都继承自Object对象,即那些对象都是Object的实例。Object对象的原生方法分成两类:Object本身的方法与Object的实例方法。(1)Object对象本身的方法所谓“本身的方法”就是直接定义在Object对象的方法。Object.print = function (o) { console.log(o) };上面代码中,

2021-05-30 09:55:07 144

转载 入门前端-《JavaScript 语言入门教程-Array 对象及使用示例》

构造函数Array是 JavaScript 的原生对象,同时也是一个构造函数,可以用它生成新的数组。var arr = new Array(2);// 等同于var arr = Array(2);Array()构造函数有一个很大的缺陷,不同的参数会导致行为不一致。// 无参数时,返回一个空数组new Array() // []// 单个正整数参数,表示返回的新数组的长度new Array(1) // [ empty ]new Array(2) // [ empty x 2 ]

2021-05-30 09:53:46 207

转载 入门前端-《JavaScript 语言入门教程-Number对象》

NumberNumber对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用。toFixed()toFixed()方法先将一个数转为指定位数的小数,然后返回这个小数对应的字符串.(10).toFixed(2) // "10.00"10.005.toFixed(2) // "10.01"其中10必须放在括号里,否则后面的点会被处理成小数点。由于浮点数的原因,小数5的四舍五入是不确定的,使用的时候必须小心。(10.055).toFixed(2) // 10.05(10.

2021-05-30 09:26:40 180

原创 前端开发Tip-button 去除圆角和边框

在做小程序开发的时候,很多开发功能都是用 button 的 open-type来实现,但是 button 默认的效果太丑了这时候我们可以将 button 组件去除 边框和圆角我们可以这么做 button::after{ border: 0; border-radius: 0;}...

2021-05-30 09:06:26 923

原创 前端开发Tip-CSS 实现文本单行或者多行省略

单行省略显示overflow: hidden;text-overflow:ellipsis;white-space: nowrap;中英文数字多行省略显示display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;/*英文数字换行*/word-break: break-all;...

2021-05-30 09:02:30 182

转载 入门前端-《JavaScript 语言入门教程-String对象》

charAt()charAt方法返回指定位置的字符,参数是从0开始编号的位置。var s = new String('abc');s.charAt(1) // "b"s.charAt(s.length - 1) // "c"如果参数为负数,或大于等于字符串的长度,charAt返回空字符串。'abc'.charAt(-1) // ""'abc'.charAt(3) // ""concat()concat方法用于连接两个字符串,返回一个新字符串,不改变原字符串。var s1 = 'ab

2021-04-17 22:54:47 85

转载 入门前端-《JavaScript 语言入门教程-Math对象》

静态属性Math对象的静态属性,提供以下一些数学常数。Math.E:常数e。Math.LN2:2 的自然对数。Math.LN10:10 的自然对数。Math.LOG2E:以 2 为底的e的对数。Math.LOG10E:以 10 为底的e的对数。Math.PI:常数π。Math.SQRT1_2:0.5 的平方根。Math.SQRT2:2 的平方根。Math.E // 2.718281828459045Math.LN2 // 0.6931471805599453Math.LN10 /

2021-04-17 22:52:38 138

转载 入门前端-《JavaScript 语言入门教程-Date对象》

普通函数的用法Date对象可以作为普通函数直接调用,返回一个代表当前时间的字符串。Date()// "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)"注意,即使带有参数,Date作为普通函数使用时,返回的还是当前时间。Date(2000, 1, 1)// "Tue Dec 01 2015 09:34:43 GMT+0800 (CST)"上面代码说明,无论有没有参数,直接调用Date总是返回当前时间。Date.now()Date.now方法返回当前时间距离

2021-04-17 22:49:42 220

转载 入门前端-《JavaScript 语言入门教程-JSON对象》

JSON.stringify()基本用法JSON.stringify()方法用于将一个值转为 JSON 字符串。该字符串符合 JSON 格式,并且可以被JSON.parse()方法还原。JSON.stringify('abc') // ""abc""JSON.stringify(1) // "1"JSON.stringify(false) // "false"JSON.stringify([]) // "[]"JSON.stringify({}) // "{}"JSON.stringify

2021-04-17 22:47:57 129

转载 入门前端-《JavaScript 语言入门教程-console 对象与控制台》

日志输出等级console.log()console.info()console.debug()console.warn()warn方法输出信息时,在最前面加一个黄色三角,表示警告console.error()error方法输出信息时,在最前面加一个红色的叉,表示出错。同时,还会高亮显示输出文字和错误发生的堆栈。console.table()对于某些复合类型的数据,console.table方法可以将其转为表格显示。var languages = [ { name: "JavaS

2021-03-21 10:04:45 167

转载 入门前端-《JavaScript 语言入门教程-try_catch以及 Error 错误处理》

Error 实例对象JavaScript 解析或运行时,一旦发生错误,引擎就会抛出一个错误对象。JavaScript 原生提供Error构造函数,所有抛出的错误都是这个构造函数的实例。var err = new Error('出错了');err.message // "出错了"JavaScript 语言标准只提到,Error实例对象必须有message属性,表示出错时的提示信息,没有提到其他属性。大多数 JavaScript 引擎,对Error实例还提供name和stack属性,分别表示错误的

2021-03-21 10:01:47 322

转载 入门前端-《JavaScript 语言入门教程-数据类型转化》

强制转换强制转换主要指使用Number()、String()和Boolean()三个函数,手动将各种类型的值,分别转换成数字、字符串或者布尔值。Number// 数值:转换后还是原来的值Number(324) // 324// 字符串:如果可以被解析为数值,则转换为相应的数值Number('324') // 324// 字符串:如果不可以被解析为数值,返回 NaNNumber('324abc') // NaN// 空字符串转为0Number('') // 0// 布尔值:tru

2021-03-21 10:00:06 127

转载 入门前端-《JavaScript 语言入门教程-运算符》

算术运算符除了加法运算符,其他算术运算符(比如减法、除法和乘法)都不会发生重载。它们的规则是:所有运算子一律转为数值,再进行相应的数学运算。true + true // 21 + true // 2'3' + 4 + 5 // "345"3 + 4 + '5' // "75"1 - '2' // -11 * '2' // 21 / '2' // 0.5为了得到负数的正确余数值,可以先使用绝对值函数// 错误的写法function isOdd(n) { return n %

2021-03-21 09:58:52 140

转载 入门前端-《JavaScript 语言入门教程-函数和数组》

函数函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。函数的重复声明如果同一个函数被多次声明,后面的声明就会覆盖前面的声明。function f() { console.log(1);}f() // 2function f() { console.log(2);}f() // 2toString()函数的toString()方法返回一个字符串,内容是函数的源码。function f() { a(); b(); c();}

2021-02-28 20:57:27 142

转载 入门前端-《JavaScript 语言入门教程-字符串和对象》

字符串length 属性length属性返回字符串的长度,该属性也是无法改变的var s = 'hello';s.length // 5s.length = 3;s.length // 5s.length = 7;s.length // 5字符集JavaScript 使用 Unicode 字符集。JavaScript 引擎内部,所有字符都用 Unicode 表示。JavaScript 不仅以 Unicode 储存字符,还允许直接在程序中使用 Unicode 码点表示字符,

2021-02-28 20:56:26 245

转载 入门前端-《JavaScript 语言入门教程-数据类型和数值》

六种数据类型JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 又新增了第七种 Symbol 类型的值,本教程不涉及。)数值(number):整数和小数(比如1和3.14)字符串(string):文本(比如Hello World)。布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值null:表示空值,即此处的值为空

2021-02-28 20:53:53 158

转载 入门前端-《JavaScript 语言入门教程-导论》

导论JavaScript 语言的定义JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script language),指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序(比如浏览器)的“脚本”。目前,已经嵌入 JavaScript 的宿主环境有多种,最常见的环境就是浏览器,另外还有服务器环境,也就是 Node 项目。为什么学习 JavaScript操控浏览器的能力广泛的使用领域浏览器的平台化Node数据库操作移动平台开发内嵌脚本语言跨平台的桌面

2021-02-28 20:52:19 191

原创 Android - EventBus 最最最基本使用

背景在Android开发中数据传递的方式有很多种,常见的有Intent在页面间传递数据Handler刷新UIBroadcast传递消息系统提供的API在使用上会有些复杂。举个示例:Handler发送数据并刷新UIHandler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg);

2021-01-24 19:59:39 1334

原创 NodeJS 后端开发 - 使用 sequelize/cli 实现 mysql 数据迁移

文章目录背景实现安装 sequelize/cli 依赖初始化实现数据迁移参考背景在做后台接口开发时,我们总会遇到新增字段或者修改字段的问题。在开发阶段我们可以删表重建,但是上线之后可不能这么搞了。所以数据迁移就很重要了。所谓的数据迁移原理其实就是将数据复制出来然后再把表删了重新建表同时把数据再复制进去。这里我用到的ORM是Sequelize所以下面简单介绍一下Sequelize实现数据迁移的过程。实现安装 sequelize/cli 依赖npm install --save-dev sequ

2021-01-24 19:56:06 796

原创 学习笔记-极客时间 玩转 git 三剑客 课程记录

课程地址:https://time.geekbang.org/course/intro/100021601这篇文章不是课程的全部,仅仅是课程的冰山一角,而且苏老师对于 git 的使用讲解的很清晰,有需要的可以付费支持。如果你想白嫖可以简单看我下面的粗陋记录或者去阮一峰老师的博客,地址是:https://www.liaoxuefeng.com/wiki/896043488029600/git 基本命令git 下载https://git-scm.com/downloads选择合适的系统下.

2021-01-24 19:53:12 933

原创 Android - 从浅到懂理解 Binder

文章目录背景为什么需要跨进程通信(IPC)为什么是Binder?用户空间/内核空间系统调用:内核态/用户态传统 IPC 的原理内核模块 / "驱动"Binder IPC 机制实现原理总结参考背景在插件化使用时,进程间通信使用了AIDL进行跨进程通信,而AIDL底层的实现是使用Binder机制。在深入了解了AIDL之后,我们还需要再深入学习Binder。为什么需要跨进程通信(IPC)一个进程一般是对应一个App,你不会希望别的进程(App)能够轻而易举的能操作你的App吧,所以你的App只能访问Ap

2021-01-01 20:43:23 359

原创 Vue2基础- Vuex 的简单使用

文章目录Vuex 是什么状态管理是什么?响应式是什么?不用 Vuex 也是可以的使用安装知识储备全局 storeStatecomputed 计算属性mapState 辅助函数GettersMutationsActionsModules购物车示例Vuex 是什么Vuex是什么一个专为 Vue.js 应用程序开发的响应式状态管理模式.状态管理是什么?从我个人角度来看,状态可以指代数据。而状态管理也就可以看作数据管理,主要是用于分层解耦。在Vuex中状态管理可以看作是全局变量,这个变量可以通过

2020-12-26 22:50:43 953

原创 Android - 从浅到懂理解 Serializeable 和 Parcelable 实现的序列化和反序列化

背景在开发插件化App时用到了AIDL实现进程间通信。而AIDL要想传递对象类型的数据就需要将对象序列化。在 Android 开发中,我们经常需要对对象进行序列化与反序列化操作。最常见的就是通过 Intent 传输数据时,Intent 只能传输基本数据类型、String 类型和可序列化与反序列化的对象类型,要想通过 Intent 传递对象类型,我们需要让该对象类型支持序列化和反序列化。我们知道,Android 给我们提供了两种方式来完成序列化与反序列化过程:一种是 Serializable 方

2020-12-23 22:09:35 692

原创 Android - 秒懂TCP_UDP_IP_Socket

背景在涉及网络知识时总是记不太清相关概念,因此期望通过简短的文字描述,理解并记住相关概念。TCP属于七层协议中的传输层,是面向连接的协议。面向连接意思就是通信双方建立连接才能通信,没建立连接不能通信。因此是安全的。安全可以指:能够知道通信双方,也可以指数据能够保证按顺序收到。UDP属于七层协议中的传输层,是面向无连接的协议。面向无连接意思就是通信之前双方不需要建立连接。这也导致数据可能丢包并且不能保证数据接收的顺序。数据丢包的原因是:客户端发送消息了,但是服务器端还没启动,因此收不到客户

2020-12-13 09:55:40 198

原创 Android - 秒懂TCP连接的三次握手、四次挥手

背景在涉及网络知识时总是记不太清相关概念,因此期望通过简短的文字描述,理解并记住相关概念。定义Http 协议是在 TCP 协议基础上封装的应用层协议。所以它在建立连接的时候会经历三次握手,断开连接会经历四次挥手。相关标识SYN 表示建立连接,FIN 表示关闭连接,ACK 表示响应,PSH 表示有 DATA数据传输,RST 表示连接重置。三次握手目的是为了通信双方建立连接。第 1 次握手客户端发送连接标识 SYN 给服务器端第 2 次握手服务器端接收到消息,返回 ACK+SYN

2020-12-13 09:54:18 629 1

原创 Android - 从浅到懂去理解注解

文章目录Java注解产生背景Java 注解是什么作用是什么编译时注解运行时注解二者的区别本质是什么注解的分类预定义注解@Override@Deprecated@SuppressWarnings@SafeVarargs@FunctionInterface元注解@Target@Retention@Documented@Inherited自定义注解注解使用示例1. @NonNull2. 代替简单枚举3. Butterknife @BindView 实现4. AopArms 项目源码其他问题注释和注解的区别注解是

2020-12-09 09:18:59 315

原创 Android -从浅到懂使用反射机制

定义JAVA反射机制是在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法;对于任何一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。使用场景反射是在运行时获取确定类型,绑定对象。常见的两个使用场景运行时获取对象的所有信息泛型擦除在运行时获取类这里的运行时指的是程序在运行后。相应的还有编译时,编译时是编译器将源代码翻译成机器能识别的代码。举个例子说明编译时和运行时的区别:微信图片list1 没有声明

2020-12-09 09:17:32 5852 10

原创 设计模式 - Android 常见的三种单例模式写法

单例模式(kotlin Java)单例模式的描述意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决: 一个全局使用的类频繁地创建与销毁。何时使用: 当您想控制实例数目,节省系统资源的时候。如何解决: 判断系统是否已经有这个单例,如果有则返回,如果没有则创建。关键代码: 构造函数是私有的。线程不安全public class Singleton { private static Singleton instance; private Singleton

2020-11-30 19:16:15 431

原创 微信小程序-使用 vant-weapp 之后的分包优化

背景在开发中引入了 vant-weapp 导致项目包过大,真机调试不了,也上传不了,所以只能分包加载了。实现首先就是根据官方文档进行分包但是有可能包体积还是过大,这时候只能进入到vant-weapp库的目录下,删除不必要的组件了。我们在用npm安装vant-weapp构建后会生成两个文件夹这两个文件的区别,官网也说明了:原理介绍node_modules 目录不会参与编译、上传和打包中miniprogram_npm 目录,里面会存放构建打包后的 npm 包,也就是小程序真正使用的 np

2020-11-30 19:01:09 3662

原创 Android - 带着问题看源码之 LiveData

定义LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力.意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。 这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。如果观察者(由 Observer 类表示)的生命周期处于 STARTED 或 RESUMED 状态,则 LiveData 会认为该观察者处于活跃状态。我想从源码知道些什么内容数据如何感知生命周期?T

2020-11-21 16:50:23 670

原创 Android - 带着问题看源码之 Lifecycle

我想从源码知道些什么内容如何实现其它对象观察组件(Activity/Fragment)的生命周期状态?在其它对象中观察到组件(Activity/Fragment)的生命周期我们可以做哪些事情?Tip:源码:Android API 29LifeCycle 的使用// 定义生命周期观察者class MyLocationListener implements LifecycleObserver { public MyLocationListener(Context context,

2020-11-21 16:47:44 291

原创 Android - 带着问题看源码之 ViewModel

通过源码我们能知道些什么内容生命周期比组件的长如何实现?数据在发生屏幕旋转等配置更改时如何保存数据?(注意是配置文件更改而不是所有的activity销毁都保存数据)为什么能避免内存泄漏?为什么不同的Fragment使用相同的Activity对象来获取ViewModel,可以轻易的实现ViewModel共享?Tip:源码:Android API 29ViewModel 的使用根据 sunFlower示例,我们写个简单的示例demo如下:class GardenActivity : App

2020-10-27 19:42:27 693 1

原创 Android-在 ViewModel 中使用 AutoDispose2 解决 RxJava 的内存泄露问题

RxJava 的内存泄露问题runRxLambda 和 runRxLambdaViewModel 只是个扩展函数,可以不用理会,下面两段代码唯一的区别就是第二段增加了 AndroidLifecycleScopeProvider.from(view),这也导致了第二段代码不会出现内存泄露,而第一段代码会出现内存泄露。runRxLambda(Observable.intervalRange(0,100,1,1,TimeUnit.SECONDS),{ Log.e("222","ru

2020-10-15 22:03:10 2055

原创 Android-使用 RxJava2 封装 RxBus

实现内容来源网络,链接忘记了,侵权删。object RxBus { private val TAG = javaClass.simpleName /** * 用于保存RxBus事件的所有订阅,并在需要时正确的取消订阅。 */ private val disposablesMap: HashMap<Any, CompositeDisposable?> by lazy { HashMap<Any, CompositeDisp

2020-10-02 19:27:25 765 1

原创 设计模式-通过微信公众号示例讲解观察者模式

实例微信公众号的流程:首先看一下公众号的基础功能:发布文章通知所有人或者是通知部分人删除关注者点击关注(已关注的不能重复关注)然后订阅公众号的读者只需订阅公众号即可当公众号的作者发布内容选择相关的读者之后,订阅公众号的相关读者就能收到消息。实现定义抽象被观察者(微信公众号)定义抽象观察者(具体的微信公众号)定义具体的被观察者(读者)定义具体的观察者(订阅具体微信公众号的读者)观察者订阅被观察者(读者订阅公众号)被观察者发送消息(公众号发送内容)定义抽象被观察者int

2020-10-02 19:11:52 545

doughnut.zip

微信小程序-甜甜圈Plus(社区类小程序)代码

2021-09-08

投屏神器scrcpy

开源的投屏工具,没有广告。 它专注于: 轻量 (原生,仅显示设备屏幕) 性能 (30~60fps) 质量 (分辨率可达1920x1080或更高) 低延迟 (35-70ms) 快速启动 (数秒内即能开始显示) 无侵入性 (不需要在安卓设备上安装任何程序)

2020-10-17

计算机图形学4、7章简答题

1、图形的扫描转换或光栅化 定义:确定一个像素集合及其颜色,用于显示一个图形的过程,称为 2、图形扫描转换步骤与确定有关像素 再用图形的颜色或其他属性对象进行某种写操作 3、扫描转换的主要工作 确定最佳逼近于图形的像素集

2016-06-27

电话本管理系统源码

用C语言编写的电话本管理系统源码,喜欢的带走。

2014-11-04

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

TA关注的人

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