自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【面经系列】CSS面经

【Q1】你了解哪些盒子模型?CSS 盒子模型主要有两种:标准模型和 IE 模型。两者的区别体现在给元素设置的宽高如何表现,前者将宽高属性作用在内容区上,而后者则作用在边框上。换句话说,如果使用的盒子模型是标准模型,给一个元素设置宽高,那么设置的就是内容区的大小,如果这个元素有指定内边距或者边框,那么就会沿着内容区往外扩张。如果使用 IE 模型,给一个元素设置宽高,那么这个宽高就是这个元素内容...

2020-02-26 17:35:40 504

原创 【面经系列】JS面经

关于JS的面试问题总结

2020-02-24 11:36:23 1824

原创 【面经系列】Vue面经

【Q1】谈谈你对 MVVM 的理解MVVM 是 Model-View-ViewModel 的缩写,其中,Model 代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑。可以把 Model 称为数据层,因为它仅仅关注数据本身,不关心其他行为。View 是用户操作的界面,可以称为视图层,负责视图展现工作。当 ViewModel 对 Model 进行更新的时候,会通过数据绑定更新到 V...

2020-02-20 17:16:16 2014

原创 【深度剖析】曾经让人无法理解的事件循环

事件循环在浏览器端,JS 是单线程的,也就是说,在同一个时刻最多只有一个代码片段在执行,可是浏览器又可以很好的处理异步请求,到底是为什么呢?先来说明执行中的两个线程:主线程:JS 引擎执行的线程,只有一个,负责页面渲染、函数处理。工作线程:也称为幕后线程,这个线程可能存在于浏览器或 JS 引擎内部,与主线程是分开的,处理文件读取、网络请求等异步事件。在主线程中有一个执行栈,所有的 J...

2019-11-26 09:08:10 120

原创 【总结系列】原生JS常用技巧

使用原生的 JS 手撕各种小需求。

2019-11-20 17:28:46 412

原创 【总结】CSS 常用技巧

inline-block 元素导致相邻的内联元素向下偏移背景:如果 inline-block 元素设置了 overflow:hidden ,那么将会导致相邻的内联元素向下偏移。示例:在页面上有三个元素:<div>123</div><div>456</div><span>this is a span</span>...

2019-11-20 09:41:11 145

原创 【开源项目】自己做的小博客(demo)

前言还记得当初入门前端的时候,我就打算做一个属于自己的“网站”(当时的想法也挺傻的,哈哈),然而这个想法也持续了很久。大概直到前两个月(8月初),终于狠下心来决定做一个属于自己个人的博客。要做一个网站,首先得有域名,服务器,这两个是硬性条件了,接着就是开发,测试,部署上线。大致就是这么一个流程。然后,我就在阿里云买了一个域名,一台服务器,域名申请备案审核等等,接着就开始规划这个项目。项目简...

2019-10-17 14:39:37 583 1

原创 解决安卓4.0项目启动时报错:java.lang.NoClassDefFoundError

在项目的 build gradle 文件中,找到 defaultConfig ,加上配置:multiDexEnabled true同样在 build gradle 中,添加依赖:implementation 'com.android.support:multidex:1.0.1'找到项目的 Application ,重写一个方法:@Overrideprotected void attachBaseContext(Context base) { super.attachBa.

2021-03-25 14:10:53 306

原创 设置git超时时长

git config --global http.lowSpeedLimit 1000git config --global http.lowSpeedTime 600以上配置后,只有十分钟(600秒)传输速率都低于 1KB/s 的话才会 timeout,即时慢,也可以慢慢等啦。

2021-03-20 14:01:10 5855

原创 【一篇就够系列】一篇文章掌握正则表达式以及常用的正则表达式

正则的基本使用在 JS 中,提供了原生的对象 RegExp 来表示正则。RegExp 是一个构造函数,可以通过它来实例化正则对象。除此以外,还可以通过字面量的方式来创建正则。const reg = /pattern/flags其中,pattern 是正则表达式,flags 是配置选项,常用的有两个:g...

2020-03-19 09:58:03 427

原创 【力扣刷题系列】

寻找两个有序数组的中位数【原题】给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。【解题思路】从中学知识知道,如果需要求一组数字的中位数,那么先要从小到大排列这些数字。接着,如果总共有奇数个数字,那么直接取中间的,如果有偶数个数...

2020-03-18 23:06:18 1016

原创 Web Storage

简介HTML5 中的 Web Storage 有两种存储方式:sessionStorage 和 localStorage 。sessionStorage 用于本地存储一个会话中的数据,这些数据只有在同一个会话中的页面才能访问,会话结束后数据也随之销毁。localStorage 用于存储一个域名下的需要永久存在本地的数据,这些数据可以被一直访问,直到这些数据被删除。所以,两者的区别就是存储数...

2020-03-18 15:24:34 312

原创 【ES6系列】Promise

什么是 PromisePromise 是异步编程的一种解决方案。所谓 promise,从语法上看是一个对象,里面保存着未来某个时刻才会结束的事件的结果。promise 对象有以下两个特点:对象的状态不受外界影响。promise 对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功) 和 rejected(已失败)。 只有异步操作的结果才可以决定当前具体是哪种...

2020-03-12 01:36:19 163

原创 【总结系列】对JS数组来一次总结

前言数组是最常用的数据类型之一,那么按道理讲已经非常熟悉了吧,为什么还要来一次总结呢??其实目的还是为了一些不常用的属性和方法,或者通过这些方法实现一些异想天开的小需求吧。所以,本文将总结一切关于数组的东西,但是不是一个基础教程,对于简单的概念以及用法就忽略啦。通过本文可以学习到:数组的属性数组的静态方法数组的实例方法ES6+ 新方法通过数组的内置方法实现一些小功能数组的属性...

2020-03-05 20:33:38 130

原创 防抖与节流

前言在开发中经常遇到一些频发触发的事件,比如说鼠标移动,键盘的输入输出,窗口的缩放,滚动条的运动等等。下面举个例子来了解事件的频繁触发:比如,页面上有一个元素,我们给这个元素(id为 container)来绑定鼠标移动事件:let count = 1let container = document.getElementById("container")function getUser...

2020-03-03 18:22:42 232

原创 【ES6系列】Reflect

概述Reflect 是为了操作对象而提供的 API,它的设计目的有以下几个。将 Object 上一些属于语言内部的方法 (比如 Object.defineProperty)放在 Reflect 对象上。现阶段,某些方法同时在 Object 和 Relfect 对象上部署,未来的新方法将只部署在 Reflect 对象上。修改某些 Object 方法的返回结果,让其更加完善。比如,Object...

2020-02-26 10:29:01 255

原创 【ES6系列】Proxy

一、概述Proxy 从字面意思可以理解为 “代理”,用于修改某些操作的默认行为,等同于在语言层面做出修改。通过代理可以在目标对象之前架设一层 “拦截” ,外界对该对象的访问都必须通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。var obj = new Proxy({}, { get: function (target, propKey, receiver) { ...

2020-02-25 15:40:57 203

原创 【ES6系列】详解ES6中的Map

一、含义和基本用法Map 类似于对象,都用于存储 key-value 结构的数据。但是,在传统的对象上,只能用字符串或者 symbol 来作为键名。然而,Map 与对象最大的差别就在于它可以各种数据类型作为键名。Map 是一个构造函数,用于实例化实例。const m = new Map()const o = {name:"jonas"}m.set(o, 'content')m.get...

2020-02-25 12:44:33 3404 2

原创 【一篇就够系列】一篇了解Sass

一、什么是 Sass一句话总结:Sass 是一门 CSS 预编译语言,它提供了比 CSS 更加简单的语法。二、安装与配置1.安装 RubySass 是基于 Ruby 的,所以需要先安装 Ruby 。官网:https://rubyinstaller.org/downloads/在安装的过程中,勾选 Add Ruby executables to your PATH 把 Ruby 添加到环...

2020-02-25 11:09:07 550

原创 【ES6系列】详解ES6中的Set

一、基本用法Set 是 ES6 提供的一种新的数据结构,它跟数组一样用于存储有序的数据,但是没有随机访问的能力,也就是说,不能像数组一样通过索引来获取具体的某个元素。除此以外,最重要的是,Set 中的元素具有唯一性,不允许存储相同的元素!Set 是一个构造函数,用于实例化实例:let set = new Set()set.add(1)//往set集合中添加元素1除此以外,Set() 可...

2020-02-24 16:45:00 1420

原创 谈谈HTTP缓存

什么是 HTTP 缓存HTTP 缓存是用于临时存储 Web 资源副本的,以减少服务器延迟的一种信息技术。简单来说,就是在打开网页的时候,将网页中可能重复加载的资源,按照一定的规则保存到本地,以便第二次打开同样的网站时,可以重复利用已有资源。两种缓存机制不同的缓存机制对待网络资源的方式是不一致的,常见的缓存机制有两种:协商缓存和强缓存。假设资源A在本地的一个角落里,现在我们再一次请求...

2020-02-19 19:43:28 186

原创 详解JS中的Object

详解 JS 中的 Object从本质上看,Object 是一个构造函数,用于创建对象。一、Object 构造函数的属性在 Object 中声明的属性只有两个:Object.length —— 值为1Object.prototype —— 指向 Object 函数的原型对象二、静态方法静态方法就是直接定义在 Object 函数上的方法,注意与实例方法区分!!!调用的方式也不同,直接...

2020-02-18 17:02:30 19795

原创 史上最简单的Babel入门教程

史上最简单的Babel入门教程在学习 Babel 之前,只知道它是一个 JS 编译器,大概的功能就是帮助我们在旧的浏览器环境中将 ES6+ 的代码转换为兼容低版本的 JS 代码。但是,它是通过什么实现的,具体是怎样实现的就没有深入了解了。废话不多说,直接进入主题。本文通过一个案例来打开 Babel 这个技能,所以先要准备一个小项目。mkdir babel-basic && c...

2020-02-18 11:17:04 1317

原创 常用类String

常用类 String在 Java 中,字符串不是基本数据类型,而是通过 String 类来表达的。也就是说,Java 中的字符串都是对象!!String 的定义public final class String implements java.io.Serializable, Comparable<String>, CharSequence从上面注意到,String 是被定义...

2020-02-15 15:55:38 152

原创 Java中的static关键字

Java 中的 static 关键字static 代表着什么?在 Java 中,static 表示 “全局” 或者 “静态” 的意思,用来修饰成员变量和方法,当然也可以修代码块。Java 把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量、数组和对象的引用,堆内存主要放一些对象。在 JVM 加载一个类的时候,若该类存在 static 修饰的成员变量或方法,则会为这些成员变量或方法...

2020-02-12 23:35:00 74

原创 使用序列化实现对象的拷贝

使用序列化实现对象的拷贝在 Java 中,只要实现了 Cloneable 接口的类都具备被拷贝的能力。拷贝可分为浅拷贝和深拷贝(两者的区别在于如何处理对象中的引用数据类型)。具体的方法是在 Object 类中实现的,但是该方法存在一个缺陷,它并不会将对象的所有属性全部拷贝出来,而是有针对的拷贝:对于基本类型而言:拷贝值对于对象而言:拷贝对象的引用地址这就是 Object.clone...

2020-02-10 21:11:57 176

原创 Java 中的抽象类和接口

Java 中的抽象类和接口抽象类与接口是 Java 语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予了 Java 强大的面向对象能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也存在区别。抽象类在面向对象编程的世界里面,一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是用来描述对象的。如果一个类没有足够的信息来描述一个具体对象,而是需要其他类...

2020-02-10 16:25:11 247

原创 Java舍入法

Java 舍入法传统的四舍五入法传统的四舍五入法就是我们日常生活中所认识的四舍五入,看保留位的下一位数,大于或等于5就进位,否则舍去。在 Java 中实现这种传统的四舍五入法很几种方法:1. BigDecimal 与 RoundingMode 的配合double f = 11123.5455;BigDecimal b = new BigDecimal(f);double f1 = b...

2020-02-09 22:56:23 292

原创 理解Java三大特性之多态性

理解Java三大特性之多态性多态,就是指程序中定义的引用变量所指向的具体类型和通过该引用变量调用的方法在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量调用的到底是哪个类中的实现方法,必须由程序运行期间才能决定。这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行...

2020-02-08 23:04:59 176

原创 理解Java的三大特性之继承性

理解 Java 的三大特性之继承性回顾前面博文的例子(《理解Java的三大特性之封装性》):public class Husband { private String name; private String sex; private int age; private Wife wife; /*省略getter()、setter()*/}public c...

2020-02-08 16:20:31 258

原创 理解Java的三大特性之封装性

理解 Java 的三大特性之封装性封装,从字面上理解就是包装的意思,专业术语就是信息隐藏。信息隐藏是指利用抽象的数据类型将数据和基于数据的操作封装在一起,构成一个不可分割的独立实体,数据被保护在抽象的数据类型的内部,尽可能地隐藏内部的实现细节,只保留一些对外接口使之与外部发生联系。 其他对象只能通过包裹在数据外面的意境授权的操作来与这个封装的对象进行交流和交互。也就是说,用户无需知道一个对象的内...

2020-02-08 15:04:24 426

原创 读书笔记之《图解HTTP》

读书笔记之《图解HTTP》一、了解 Web 及网络基础(一)使用 HTTP 协议访问 Web本书没有上面就是硬生生的讲概念,而是用一个问题引出 HTTP :当我们在浏览器的地址栏中输入 URL 时,Web 页面是如何呈现的?然而书上也没有很官方的给出回答,只是说信息被发往某处,然后从某处返回一个页面就是咱们看到的页面。接着说到,像这种从服务器获取文件资源等信息的,都可以被称为客户端,返回结...

2020-02-07 23:35:33 168

原创 【深入理解】width 的默认值

首先,明确一点: HTML 元素属性 width 的默认值是 auto 。然而这个 auto 有四种表现,从而造成了不同的元素的默认宽度有不同的表现。fill-available —— 意为 充分利用可用空间,比如块级元素 div 的宽度默认为父级元素的 100% ,这种表现也被称为块级元素的流动性。shrink-to-fit —— 意为 收缩至合适,比如 inline-block 元...

2019-11-21 13:17:46 2133 2

原创 Dart 基础篇(二)—— 基础知识

入口方法在上一篇文章中,我们配置了 Dart 开发的基本环境,而且在一个 main 方法中输出了简单的一句话。然而,这个 main 方法就是一个 Dart 程序(脚本)的入口。语法:main(){ //逻辑}注释与其他语言一致,分为单行注释和多行注释。//这是一个单行注释/*这是一个多行注释*/变量在 Dart 语言中,定义变量有两种方式,一种是通过关键字 var 声明...

2019-11-20 16:02:25 137

原创 Koa 基础篇(四)—— Cookie 与 Session

CookieCookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个 Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于 Cookie 具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能, 而这一切都不必使用复杂的 CGI 等程序。...

2019-11-19 22:20:37 277

原创 Koa 基础篇(三)—— 模板引擎

ejs安装npm install --save ejs koa-views引入const views = require("koa-views")app.use(views("views",{extension:"ejs"}))注意:上面这里意思就是把路径 views 作为存放 ejs 模板的路径。基本使用router.get("/news",async (ctx,...

2019-11-19 21:26:17 210

原创 Koa 基础篇(二)—— 路由与中间件

路由在 Koa 中,路由,是一个由一个 URI 和一个特定的 HTTP 方法组成的,涉及到应用如何响应客户端对某个网站节点的访问。简而言之,就是针对不同的 URI 服务器做出不同的响应。在 Koa 中使用路由在 Koa 中使用路由可以分为以下几步:安装npm install --save koa-router在模块中引入路由const router = require("...

2019-11-19 17:03:05 559

原创 Koa 基础篇(一)—— 简介与环境搭建

Koa 简介Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。 —— 摘自 Koa.js 官网Node.js...

2019-11-13 16:37:23 134

原创 CSS 布局系列(二)—— 圣杯布局

圣杯布局圣杯布局是三栏(左中右)布局的一种,其中,左右两边固定宽度,中间的主体内容自适应。为了行文方便,下面先定义一些公共代码:HTML 结构:<div class="container"> <header>header</header> <main> <div class="center">cen...

2019-11-11 18:56:40 439

原创 React 基础篇(九)—— Fragments

FragmentsReact 中的一个常见模式是一个组件返回多个元素。Fragments 允许将子列表分组,而无需向 DOM 添加额外的节点。class Table extends React.Component { render() { return ( <table> <tr> <Columns /&...

2019-11-11 17:12:58 280

空空如也

空空如也

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

TA关注的人

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