自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DOM更新和渲染

事件循环

2023-05-06 17:20:22 379

原创 first-of-type、last-of-type与class一起使用不生效的问题

first-of-type、last-of-type、class

2023-02-16 13:52:10 1905 1

原创 JS垃圾回收机制(V8)

JS垃圾回收 V8 Garbage collection

2023-02-10 16:46:58 616

原创 01背包问题

主要是填充一个二维数组,按照当前物品放入背包和不放入背包动态计算。

2022-04-21 14:34:16 360

原创 canvas学习笔记

之前有用到canvas的时候都是当下去网上扒扒,没有系统性的去深入学习,刚好最近又要用到canvas,就系统性的学习一下,在这里记录一下,方便以后查阅(参考资料是MDN)。什么是canvas<canvans>是一种可以使用脚本(通常是JavaScript)在上面绘制图形的特殊的HTML元素,默认大小是300像素x150像素,为了在Canvas上绘制图形,我们使用一个JavaScript上下文对象,它能动态创建图像。基本用法<canvas id="mycanvas" widt

2022-04-20 10:05:38 987

原创 JS的继承方式

原型链继承function Parent() { this.familyName = '张';}Parent.prototype.getLanguage = function() { console.log('chinese')}function Child(age, gender) { this.age = age || 0; this.gender = gender || '未知';}Child.prototype = new Parent();let daughter = ..

2022-04-08 15:16:01 416

原创 css元素垂直和水平居中

css元素垂直水平居中

2022-03-30 18:09:43 372

原创 HTTP的三次握手

最近复习(预习)了一下http协议相关的知识,做个总结供以后复习(复习):特点:面向连接,点到点的安全(相对与UDP)传输协议这里着重讲下自己对http的三次握手的理解,有错误的地方希望大家可以指出...

2021-08-30 11:02:52 2445

原创 ES6规范记录(一):块作用域,解构赋值

记录下ES6的一些容易忽略的规范:let和const1)只要块级作用域内存在let命令,它所声明的变量就‘绑定’这个区域,不再受外部的影响。ES6明确规定,如果区块中存在let和const命令,这个区域对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。在语法上称为“暂时性死区”(temporal dead zone, 简称TDZ)。//例1:for(let index = 0; inde

2021-08-25 19:59:37 119

原创 CSS BFC(块级格式化上下文)

块格式化上下文(Block Formatting Context,BFC)是web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。(MDN)个人理解:BFC就是一个独立的布局上下文,这个独立的布局上下文不会影响其他元素的布局。从表现上看同一个父元素的兄弟元素处于同一个BFC(绝对定位和float除外)

2021-08-20 16:33:20 205

原创 CSS 外边距重叠

1. 什么是外边距重叠块的上外边距(margin-top)和下外边距(margin-bottom)有时合并(折叠)为单个下边距,其大小为单个边距的最大值(或如果它们相等,则仅为其中一个),这种行为成为边距折叠。(MDN)2. 发生外边距重叠(边距折叠)的情况同一层相邻元素之间:<style>p:nth-child(1) { margin-bottom: 13px;}p:nth-child(2) { margin-top: 87px;}</style>&lt

2021-08-20 16:27:33 718

原创 圣杯布局和双飞翼布局

个人理解:元素被设置成float: left或right; 之后,从表现上来看就像当前元素占用当前布局流的一块区域,并且不影响周围元素的正常布局;margin相当于推开周围其它元素的距离(为负值时相当于周围元素可以覆盖当前元素的距离),margin规则同样适用于float元素例:先添加float元素,后添加块级元素元素,块级元素不会另起一行。(图1)<div style="width: 100px; height: 100px; background: red; float: left;

2021-06-09 15:12:01 77

原创 盒模型

(1)块级盒子(Block box)和内联盒子(Inline box)一个被定义成块级的盒子会表现出一下行为:盒子在内联的方向上扩展并占据父容器在该方向上的所有可用空间,在绝大多数情况下意味着盒子会和父容器一样宽每个盒子都会换行width和height可以发挥作用内边距,外边距和边框会将其它元素从当前盒子周围“推开”除非特殊指定,诸如标题(h1等)和段落(p)默认情况下都是块级的盒子。如果一个盒子对外显示为inline,那么它有如下行为:盒子不会产生换行width和height不起作

2021-04-15 20:17:36 107

原创 JS(ES6之前)变量提升和函数提升

在ES6之前,JavaScript没有块级作用域的概念(一个’{}'就是一个块级作用域),只有全局作用域和函数作用域。变量提升既将变量(或函数)声明提升到它所在作用域最开始的部分:(1)变量提升 console.log(a);//undefined var a = 'xxx'; console.log(a); // xxx //console.log(b);//报错( b is not defined) function fn() { console.log(a);//undefined

2021-04-14 15:15:41 201

原创 block、__weak和__strong

block的类型没有引用引用外部变量的block是全局block(NSGlobalBlock)引用了外部变量的block在声明时(执行代码是在栈内存),处于栈内存,所以是栈block(NSStackBlock);由于栈中对象的内存由系统管理,对象内存的回收由系统决定,所以为了防止下次调用block时block已被回收,就需要把刚声明的block(栈block)以及block中引用的对象copy到堆上,这时刚才声明的block就变成了堆block(NSMallocBlock)。 //**********

2021-03-23 19:46:50 163

原创 Java学习(十一)-并发

现在可能有单台拥有多个CPU的计算机,但是,并发执行的进程数目并不是由CPU数目限制的。操作系统将CPU的时间片分配给每一个进程,给人并行处理的感觉。多线程程序在较低的层次上拓展了多任务的概念:一个程序同时执行多个任务。通常,每一个任务称为一个线程,它是线程控制的简称。可以同时运行一个以上线程的程序称为多线程程序。那么多进程与多线程有哪些区别呢?本质的区别在于每个进程里拥有自己的一整套变量,而线程则共享数据。共享变量使线程之间的通讯比进程之间的通讯更有效、更容易。此外,在有些操作系统中,与进程比较,线程

2021-03-08 19:59:43 119

原创 iOS知识点

(1)非主线程的runloop默认是关闭装填,需要手动开启#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; [self performSelectorInBackground:@selector(fun) withObject:nil]; }- (void)

2021-02-24 20:37:18 74

原创 Java学习(十)-集合

(1)Java集合框架Java最初版本只为最常用的数据结构提供了很少的一组类:Verctor、Stack、Hashtable、BitSet与Enumeration接口,其中Enumeration接口提供了一种用于访问任意容器中各个元素的抽象机制。这是一种很明智的选择,但想要建立一个全面的集合类库还需要大量的时间。将集合的接口与实现分离与现代的数据结构类库的常见情况一样,Java集合类库也将接口与实现分离。例如,队列:队列接口可以在队列的尾部添加元素,在队列的头部删除元素,并且可以查找队列中元素的

2021-02-22 13:11:03 82

原创 Java学习(九)-异常

(1)处理错误假设在一个Java程序运行期间出现了一个错误。用户期望在出现错误时,程序能够采用一些理智的行为。*返回到一种安全状态,并能够让用户执行一些其他的命令;或者*允许用户保存所有操作的结果,并以妥善的方式终止程序。(2)异常分类在Java程序设计语言中,异常对象都派生于Throwable类的一个实例。如果Java中内置异常类不能满足需求,用户可以创建自己的异常类。所有的异常都是由Throwable继承而来,但是在下一层立即分解为两个分支:Error和Exception。Error类层次

2021-02-07 14:02:58 164 1

原创 Java学习(八)-代理

(1)何时使用代理

2021-02-04 19:43:54 126 1

原创 Java学习(七)-内部类

c

2021-02-01 17:05:26 106

原创 Java学习(六)-lambda表达式

b

2021-02-01 17:04:54 124

原创 Java学习(五)-接口

a

2021-02-01 17:02:49 122

原创 Java学习(四)

包Java允许使用包将类组织起来。使用包的主要原因是确保类名的唯一性。(1)类的导入一个类可以使用所属包中的所有类,以及其他包中的共有类。可以采用两种方式访问另一个包中的公有类。在每个类之前添加完整的包名:java.time.LocalDate tody = java.time.LocalDate.now();,这显然很繁琐。更简单且常用的方式是使用import语句。import语句时一种引用包含在包中的类的简明描述。一旦使用了import语句,在使用类时,就不必写出包的全名了。例:import.

2021-01-27 20:33:10 182

原创 Java学习(三)-对象与类

面向对象程序设计(OOP)概述面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。(1)类类(class)是构造对象的模板或蓝图。由类构造(construct)对象的过程称为创建类的实例(instance)。Java编写的所有代码都位于某个类的内部。封装:把数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域,操纵数据的过程称为方法(method)。对于每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前.

2021-01-26 21:03:26 107

原创 Java学习笔记(二)

for each循环用来一次处理数组中的每个元素(其他类型的元素集合亦可)而不必为指定下标值而分心。for(variable: collection) statementcollection必须是一个数组或者是一个实现了Iterable接口的对象(例如:ArrayList)...

2021-01-26 15:42:08 74

原创 Java学习笔记(一)

Java学习笔记Java的工作方式它的目标是让你写一个应用程序能够在任何设备上执行。编写源代码文件 -> 用编译器运行源代码,编译器会检查错误,如果有错误就要改正才能产生正确的输出。 -> 编译器会生产出字节码。任何支持Java的装置都能够把它转译成可执行的内容。编译后的字节码与平台无关 -> Java虚拟机(JVM)可以读取和执行字节码。...

2021-01-25 15:55:32 94

原创 TypeScript学习笔记(中)

TypeScript中类的访问类型(1)一个简单的类class Person { name: string;}const person = new Person();person.name = "张三";console.log(person.name);

2021-01-18 19:58:35 108

原创 TypeScript学习笔记(上)

TypeScript学习笔记Static TypingTypeScript的一个最主要特点就是可以定义静态类型,英文名是Static Typing,就是类型定义后就不允许更改。const count: number = 1;count = 'string' 这就是简单的定义一个数字类型的count的变量,这里的: number 就是已定义了一个静态类型。这样定义后count这个变量在程序中就永远是数字类型了,不可以改变了。自定义静态类型你还可以自己去定义一个静态类型。interface

2021-01-18 14:16:03 109

原创 个人学习笔记

学习笔记:1、闭包:闭包在实现上是一个结构体,它包存储了一个函数(通常是其入口地址)和一个相关联的环境(相当于一个符号查找表)。它既要包括约束变量(该函数内部绑定的符号),也要包括自由变量(在函数外部定义但在函数内被引用),有些函数也可能没有自由变量。闭包跟函数最大的不同在于,当捕捉闭包的时候,它的自由变量会在捕捉时被确定,这样即便脱离了捕捉时的上下文,它也能照常运行。闭包和匿名函数经常被用作同义词。但严格来说,匿名函数就是字面意义上没有被赋予名称的函数,而闭包则实际上是一个函数的实例,也就是说

2020-12-17 10:15:42 147

原创 git clone 超慢的解决方法(只适用于拉取github仓库中的代码)

把仓库地址中的www.github.com替换为www.github.com.cnpmjs.org就可以了(github.com后面添加.cnpmjs.org)例如:https://github.com/abc.git/ 改为https://github.com.cnpmjs.org/abc.git/就可以了

2020-07-09 14:21:35 844

原创 vue控制台打印的数据与使用时不同的问题

今天在做vue项目的时候碰到一个问题,在这里记录一下需求是通过日期筛选出符合条件的数据(发送请求把startDate和endDate传给后端),我这里用了el-date-picker 在@change时直接去调用接口请求数据,代码如下:<el-date-picker @change="getData" v-model="date" range-separator="~"

2020-06-02 18:53:51 2693

原创 创建cocoapod私有仓库

最近在看模块化相关知识,里面用到代码仓库。在这里把流程和遇到的坑做个记录总结。大致流程是给自己想要添加到pods的工程添加一个podspec描述文件,然后把这个文件添加到自己的索引库。索引库的作用就是告诉cocoapods如何才能找到自己的私有库,就想一本书的目录。所以,我们至少需要两个库(这里拿github举例 github最近刚支持创建私有库),一个存放索引,一个存放代码,当然索引库中可以放...

2019-01-17 20:49:10 349

原创 iOS 资源图后缀名问题

今天在开发中遇到一个奇怪的问题,在这里做个记录问题描述:在判断按钮中的图片是否是某一张资源图时发现图片一样,但是比较结果却是NOself.imageView.image = [UIImage imageNamed@"img"];if ([self.imageView.image isEqual:[UIImage imageNamed:@"img.png"]]) {}代码中 i...

2019-01-09 16:30:34 372

原创 iOS 指定初始化器 NS_DESIGNATED_INITIALIZER

这两天看了指定初始化器的相关知识后,发现项目中有部分初始化方法存在问题,在这里做个总结。1. 指定初始化器是用来解决什么问题的?我们自定一个对象的时候一般都希望给一个对象添加新的功能、属性或设置。那么这些功能属性和设置应该在哪里添加呢?为了防止遗漏或者添加顺序不对的情况,我们选择在自定义的初始化方法中添加。但是,如果我们没有用自定义的初始化方法来创建自定义的对象会如何?例如:我们自定义一...

2019-01-03 16:10:07 682

原创 iOS 并发和并行 串行和并行 同步和异步的问题

感觉对这部分知识点有些模糊,在这里做个总结,加深下印象。1.并发和并行并发:单核处理器情况下,cpu快速的切换任务,达到一个时间段“同时”执行多个任务的效果。比如你听音乐的同时打LOL,cpu是快速的在LOL和音乐播放器之间切换,来处理两者的任务,只不过这个切换速度非常快,快到你感觉不到而已。所以,并发是就一段时间而言的,但是在某一时刻cpu只能处理LOL或音乐播放器中的一个。并行:...

2018-12-24 16:14:29 665

原创 JS调用Native方法(OC)

最近用到js调用原生方法,在这里做个总结记录。调用原生时会用到JSContext,官方文档解释如下:/*!@interface@discussion A JSContext is a JavaScript execution environment. AllJavaScript execution takes place within a context, and all Ja...

2018-12-17 15:19:42 921

原创 RAC UIActionSheet重复调用问题

在一个VC中创建两个了两个UIActionSheet(假设为A和B) 先调用A再调用B,在调用B的时候会发现A也会有回调。创建调用的代码如下(A和B完全相同):UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButto...

2018-10-29 18:00:57 267

原创 KVO内部实现原理

对于KVO以前只是会用,并不了解其内部实现。最近对KVO内部实现进行探究,在此做个总结。先看代码和现象:1.添加继承于NSObject的OBJ类,并且为OBJ类添加一个days属性#import <Foundation/Foundation.h>@interface OBJ : NSObject@property (nonatomic,assign...

2018-04-27 13:08:09 581

原创 SQL基本语句

之前看过相关的语句但是很快就忘记了(由于平时几乎用不到),刚好今天又看到了相关的知识,在此做个记录和总结,以便日后回顾与查看。1.创建表:create table if not exists 表名(字段名 字段类型)2.插入数据:INSERT INTO 表名 (字段名1,字段名2...) values (value1,value2...)3.删除某一条记录:delete f...

2018-03-13 15:49:55 253

空空如也

空空如也

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

TA关注的人

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