<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MDistance的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/MDistance</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; MDistance]]></copyright><item><title><![CDATA[SVN教程]]></title><link>https://blog.csdn.net/MDistance/article/details/103603224</link><guid>https://blog.csdn.net/MDistance/article/details/103603224</guid><author>MDistance</author><pubDate>Wed, 19 Feb 2025 10:55:52 +0800</pubDate><description><![CDATA[SVN
介绍
SVN 是 subversion 的缩写，是一个开源的版本控制系统。SVN 需要安装两个软件，一个是客户端，安装在开发者的电脑，另一个是服务端，通常安装在另一台独立电脑。
作用
版本控制系统在项目开发中作用重大，能记录文件的历史状态，主要的功能有以下几点

代码备份
版本回退
协作开发
权限控制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s5U8...]]></description><category></category></item><item><title><![CDATA[浏览器渲染引擎]]></title><link>https://blog.csdn.net/MDistance/article/details/103783477</link><guid>https://blog.csdn.net/MDistance/article/details/103783477</guid><author>MDistance</author><pubDate>Wed, 19 Feb 2025 10:54:47 +0800</pubDate><description><![CDATA[一、浏览器渲染引擎
主要模块

一个渲染引擎主要包括：HTML解析器，CSS解析器，javascript引擎，布局layout模块，绘图模块

HTML解析器：解释HTML文档的解析器，主要作用是将HTML文本解释成DOM树。
CSS解析器：它的作用是为DOM中的各个元素对象计算出样式信息，为布局提供基础设施
Javascript引擎：使用Javascript代码可以修改网页的内容，也能修改css...]]></description><category></category></item><item><title><![CDATA[浏览器应该有的功能]]></title><link>https://blog.csdn.net/MDistance/article/details/103783442</link><guid>https://blog.csdn.net/MDistance/article/details/103783442</guid><author>MDistance</author><pubDate>Wed, 19 Feb 2025 10:53:40 +0800</pubDate><description><![CDATA[浏览器应该有的功能
网络：
	浏览器通过网络模块来下载各式各样的资源，例如html文本；javascript代码；样式表；图片；音视频文件等。
	网络部分尤为重要，因为它耗时长，而且需要安全访问互联网上的资源。

资源管理：
	从网络下载，或者本地获取到的资源需要有高效的机制来管理它们。
	例如如何避免重复下载，资源如何缓存等等

网页浏览：
	这是浏览器的核心也是最基本的功能，最重要的功能。
	...]]></description><category></category></item><item><title><![CDATA[Vue3.2 setup语法糖]]></title><link>https://blog.csdn.net/MDistance/article/details/145723116</link><guid>https://blog.csdn.net/MDistance/article/details/145723116</guid><author>MDistance</author><pubDate>Wed, 19 Feb 2025 10:42:27 +0800</pubDate><description><![CDATA[提示：Vue3.2 版本开始才能使用语法糖！在 Vue3.0 中变量必须 return 出来，template中才能使用；而在 Vue3.2 中只需要在 script 标签上加上 setup 属性，无需 return，template 便可直接使用。]]></description><category></category></item><item><title><![CDATA[AgoraRtc Vue]]></title><link>https://blog.csdn.net/MDistance/article/details/131360724</link><guid>https://blog.csdn.net/MDistance/article/details/131360724</guid><author>MDistance</author><pubDate>Sat, 24 Jun 2023 13:58:17 +0800</pubDate><description><![CDATA[VideoSender提供两种方式设置自定义播放器：插槽方式指定播放器窗口指令方式指定播放器窗口。]]></description><category></category></item><item><title><![CDATA[MongoDB知识点]]></title><link>https://blog.csdn.net/MDistance/article/details/130401053</link><guid>https://blog.csdn.net/MDistance/article/details/130401053</guid><author>MDistance</author><pubDate>Thu, 27 Apr 2023 10:37:49 +0800</pubDate><description><![CDATA[Mongoose 是一个对象文档模型（ODM）库，它对Node原生的MongoDB模块进行了进一步的优化封装，并提供了更多的功能。官网。]]></description><category></category></item><item><title><![CDATA[VSCode配置代码片段]]></title><link>https://blog.csdn.net/MDistance/article/details/127727775</link><guid>https://blog.csdn.net/MDistance/article/details/127727775</guid><author>MDistance</author><pubDate>Mon, 07 Nov 2022 11:22:19 +0800</pubDate><description><![CDATA[配置用户代码片段]]></description><category></category></item><item><title><![CDATA[20-声明合并]]></title><link>https://blog.csdn.net/MDistance/article/details/120840521</link><guid>https://blog.csdn.net/MDistance/article/details/120840521</guid><author>MDistance</author><pubDate>Tue, 19 Oct 2021 10:04:03 +0800</pubDate><description><![CDATA[声明合并
如果定义了两个相同名字的函数、接口或类，那么它们会合并成一个类型：
函数的合并§
之前学习过，我们可以使用重载定义多个函数类型：
function reverse(x: number): number;
function reverse(x: string): string;
function reverse(x: number | string): number | string {
    if (typeof x === 'number') {
        return Number(x]]></description><category></category></item><item><title><![CDATA[18-类与接口]]></title><link>https://blog.csdn.net/MDistance/article/details/120840486</link><guid>https://blog.csdn.net/MDistance/article/details/120840486</guid><author>MDistance</author><pubDate>Tue, 19 Oct 2021 10:02:55 +0800</pubDate><description><![CDATA[18-类与接口
之前学习过，接口（Interfaces）可以用于对「对象的形状（Shape）」进行描述。
这一章主要介绍接口的另一个用途，对类的一部分行为进行抽象。
类实现接口§
实现（implements）是面向对象中的一个重要概念。一般来讲，一个类只能继承自另一个类，有时候不同类之间可以有一些共有的特性，这时候就可以把特性提取成接口（interfaces），用 implements 关键字来实现。这个特性大大提高了面向对象的灵活性。
举例来说，门是一个类，防盗门是门的子类。如果防盗门有一个报警器的功能，]]></description><category></category></item><item><title><![CDATA[17- 类]]></title><link>https://blog.csdn.net/MDistance/article/details/120840468</link><guid>https://blog.csdn.net/MDistance/article/details/120840468</guid><author>MDistance</author><pubDate>Tue, 19 Oct 2021 10:02:36 +0800</pubDate><description><![CDATA[类
传统方法中，JavaScript 通过构造函数实现类的概念，通过原型链实现继承。而在 ES6 中，我们终于迎来了 class。
TypeScript 除了实现了所有 ES6 中的类的功能以外，还添加了一些新的用法。
这一节主要介绍类的用法，下一节再介绍如何定义类的类型。
类的概念§
虽然 JavaScript 中有类的概念，但是可能大多数 JavaScript 程序员并不是非常熟悉类，这里对类相关的概念做一个简单的介绍。

类（Class）：定义了一件事物的抽象特点，包含它的属性和方法
对象（Objec]]></description><category></category></item><item><title><![CDATA[16-枚举]]></title><link>https://blog.csdn.net/MDistance/article/details/120840459</link><guid>https://blog.csdn.net/MDistance/article/details/120840459</guid><author>MDistance</author><pubDate>Tue, 19 Oct 2021 10:01:54 +0800</pubDate><description><![CDATA[枚举
枚举（Enum）类型用于取值被限定在一定范围内的场景，比如一周只能有七天，颜色限定为红绿蓝等。
简单的例子§
枚举使用 enum 关键字来定义：
enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};

枚举成员会被赋值为从 0 开始递增的数字，同时也会对枚举值到枚举名进行反向映射：
enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};

console.log(Days["Sun"] === 0); // true
con]]></description><category></category></item><item><title><![CDATA[15-字符串字面量类型]]></title><link>https://blog.csdn.net/MDistance/article/details/120840439</link><guid>https://blog.csdn.net/MDistance/article/details/120840439</guid><author>MDistance</author><pubDate>Tue, 19 Oct 2021 10:01:14 +0800</pubDate><description><![CDATA[字符串字面量类型
字符串字面量类型用来约束取值只能是某几个字符串中的一个。
简单的例子§
type EventNames = 'click' | 'scroll' | 'mousemove';
function handleEvent(ele: Element, event: EventNames) {
    // do something
}

handleEvent(document.getElementById('hello'), 'scroll');  // 没问题
handleEvent(doc]]></description><category></category></item><item><title><![CDATA[14-类型别名]]></title><link>https://blog.csdn.net/MDistance/article/details/120840419</link><guid>https://blog.csdn.net/MDistance/article/details/120840419</guid><author>MDistance</author><pubDate>Tue, 19 Oct 2021 10:00:41 +0800</pubDate><description><![CDATA[类型别名
类型别名用来给一个类型起个新名字。
简单的例子§
type Name = string;
type NameResolver = () =&gt; string;
type NameOrResolver = Name | NameResolver;
function getName(n: NameOrResolver): Name {
    if (typeof n === 'string') {
        return n;
    } else {
        return n()]]></description><category></category></item><item><title><![CDATA[13-内置对象]]></title><link>https://blog.csdn.net/MDistance/article/details/120840405</link><guid>https://blog.csdn.net/MDistance/article/details/120840405</guid><author>MDistance</author><pubDate>Tue, 19 Oct 2021 10:00:14 +0800</pubDate><description><![CDATA[内置对象
JavaScript 中有很多内置对象，它们可以直接在 TypeScript 中当做定义好了的类型。
内置对象是指根据标准在全局作用域（Global）上存在的对象。这里的标准是指 ECMAScript 和其他环境（比如 DOM）的标准。
ECMAScript 的内置对象§
ECMAScript 标准提供的内置对象有：
Boolean、Error、Date、RegExp 等。
我们可以在 TypeScript 中将变量定义为这些类型：
let b: Boolean = new Boolean(1);]]></description><category></category></item><item><title><![CDATA[12-声明文件]]></title><link>https://blog.csdn.net/MDistance/article/details/120840392</link><guid>https://blog.csdn.net/MDistance/article/details/120840392</guid><author>MDistance</author><pubDate>Tue, 19 Oct 2021 09:59:36 +0800</pubDate><description><![CDATA[声明文件
当使用第三方库时，我们需要引用它的声明文件，才能获得对应的代码补全、接口提示等功能。
新语法索引§
由于本章涉及大量新语法，故在本章开头列出新语法的索引，方便大家在使用这些新语法时能快速查找到对应的讲解：

declare var 声明全局变量
declare function 声明全局方法
declare class 声明全局类
declare enum 声明全局枚举类型
declare namespace 声明（含有子属性的）全局对象
interface 和 type 声明全局类型
expor]]></description><category></category></item><item><title><![CDATA[11-类型断言]]></title><link>https://blog.csdn.net/MDistance/article/details/120840376</link><guid>https://blog.csdn.net/MDistance/article/details/120840376</guid><author>MDistance</author><pubDate>Tue, 19 Oct 2021 09:58:48 +0800</pubDate><description><![CDATA[类型断言
类型断言（Type Assertion）可以用来手动指定一个值的类型。
语法§
值 as 类型

或
&lt;类型&gt;值

在 tsx 语法（React 的 jsx 语法的 ts 版）中必须使用前者，即 值 as 类型。
形如 `` 的语法在 tsx 中表示的是一个 ReactNode，在 ts 中除了表示类型断言之外，也可能是表示一个泛型。
故建议大家在使用类型断言时，统一使用 值 as 类型 这样的语法，本书中也会贯彻这一思想。
类型断言的用途§
类型断言的常见用途有以下几种：
将一个联合]]></description><category></category></item><item><title><![CDATA[10-函数的类型]]></title><link>https://blog.csdn.net/MDistance/article/details/120821230</link><guid>https://blog.csdn.net/MDistance/article/details/120821230</guid><author>MDistance</author><pubDate>Mon, 18 Oct 2021 10:10:55 +0800</pubDate><description><![CDATA[函数的类型

函数是 JavaScript 中的一等公民

函数声明§
在 JavaScript 中，有两种常见的定义函数的方式——函数声明（Function Declaration）和函数表达式（Function Expression）：
// 函数声明（Function Declaration）
function sum(x, y) {
    return x + y;
}

// 函数表达式（Function Expression）
let mySum = function (x, y) {
   ]]></description><category></category></item><item><title><![CDATA[09-数组的类型]]></title><link>https://blog.csdn.net/MDistance/article/details/120821218</link><guid>https://blog.csdn.net/MDistance/article/details/120821218</guid><author>MDistance</author><pubDate>Mon, 18 Oct 2021 10:10:19 +0800</pubDate><description><![CDATA[数组的类型
在 TypeScript 中，数组类型有多种定义方式，比较灵活。
「类型 + 方括号」表示法§
最简单的方法是使用「类型 + 方括号」来表示数组：
let fibonacci: number[] = [1, 1, 2, 3, 5];

数组的项中不允许出现其他的类型：
let fibonacci: number[] = [1, '1', 2, 3, 5];

// Type 'string' is not assignable to type 'number'.

数组的一些方法的参数也会根据数]]></description><category></category></item><item><title><![CDATA[08-接口]]></title><link>https://blog.csdn.net/MDistance/article/details/120821185</link><guid>https://blog.csdn.net/MDistance/article/details/120821185</guid><author>MDistance</author><pubDate>Mon, 18 Oct 2021 10:09:48 +0800</pubDate><description><![CDATA[对象的类型——接口
在 TypeScript 中，我们使用接口（Interfaces）来定义对象的类型。
什么是接口§
在面向对象语言中，接口（Interfaces）是一个很重要的概念，它是对行为的抽象，而具体如何行动需要由类（classes）去实现（implement）。
TypeScript 中的接口是一个非常灵活的概念，除了可用于对类的一部分行为进行抽象以外，也常用于对「对象的形状（Shape）」进行描述。
简单的例子§
interface Person {
    name: string;
   ]]></description><category></category></item><item><title><![CDATA[07-联合类型 2021-10-18]]></title><link>https://blog.csdn.net/MDistance/article/details/120821171</link><guid>https://blog.csdn.net/MDistance/article/details/120821171</guid><author>MDistance</author><pubDate>Mon, 18 Oct 2021 10:08:22 +0800</pubDate><description><![CDATA[联合类型
联合类型（Union Types）表示取值可以为多种类型中的一种。
简单的例子§
let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;
let myFavoriteNumber: string | number;
myFavoriteNumber = true;

// index.ts(2,1): error TS2322: Type 'boolean' is not as]]></description><category></category></item></channel></rss>