<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[third_的博客]]></title><description><![CDATA[田小江的技术博客]]></description><link>https://blog.youkuaiyun.com/third_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; third_]]></copyright><item><title><![CDATA[Promise异步编程]]></title><link>https://blog.youkuaiyun.com/third_/article/details/122908470</link><guid>https://blog.youkuaiyun.com/third_/article/details/122908470</guid><author>third_</author><pubDate>Fri, 18 Feb 2022 15:13:01 +0800</pubDate><description><![CDATA[一、什么是Promise呢？

1、ES6中一个非常重要和好用的特性就是Promise

2、Promise到底是做什么的呢？

Promise是异步编程的一种解决方案。

首先，当我们的开发中有异步操作时，就可以给异步操作包装一个Promise。

二、Promise的三种状态

异步操作之后会有三种状态：

Pending：等待状态，比如正在进行网络请求，或者定时器没有到时间。

Fulfill：满足状态，当我们主动回调了resolve时，就处于该状态，并且会回调.then()

Reject: 拒绝状]]></description><category></category></item><item><title><![CDATA[Electron主进程和渲染进程]]></title><link>https://blog.youkuaiyun.com/third_/article/details/121719923</link><guid>https://blog.youkuaiyun.com/third_/article/details/121719923</guid><author>third_</author><pubDate>Thu, 09 Dec 2021 21:54:35 +0800</pubDate><description><![CDATA[一、主进程和渲染进程

1、定义

Electron运行package.json的main脚本的进程被称为主进程。在主进程中运行的脚本通过创建web页面来展示用户界面。一个Electron应用总是有且仅有一个主进程。

由于Electron也使用了Chromium来展示web页面，所以Chromium的多进程架构也被使用到。每个Electron的web页面运行在它的叫渲染进程的进程中。

在普通的浏览器中，web页面无法访问操作系统的原生资源。然而Electron的用户在Node.js的API支持下，可以在]]></description><category></category></item><item><title><![CDATA[electron基础+快速上手创建electron项目]]></title><link>https://blog.youkuaiyun.com/third_/article/details/121718132</link><guid>https://blog.youkuaiyun.com/third_/article/details/121718132</guid><author>third_</author><pubDate>Sat, 04 Dec 2021 18:33:21 +0800</pubDate><description><![CDATA[主进程和渲染进程

定义原生菜单，顶部菜单

文件读取展示

定义快捷键

主进程和渲染进程通讯

打包

electron结合框架开发

一、Electron的基本介绍

1、electron是干什么的？

Electron是使用JavaScript、HTML和CSS构建跨平台的桌面应用程序。

2、为什么选择electron？

Electron可以让你使用纯JavaScript调用丰富的原生APIs来创造桌面应用。你可以把它看作是专注于桌面应用。
	在PC端桌面应用开发中，nwjs和electr...]]></description><category></category></item><item><title><![CDATA[Vue学习总结--axios]]></title><link>https://blog.youkuaiyun.com/third_/article/details/120159772</link><guid>https://blog.youkuaiyun.com/third_/article/details/120159772</guid><author>third_</author><pubDate>Tue, 07 Sep 2021 16:06:11 +0800</pubDate><description><![CDATA[Vue中发送网络请求有很多的方式。那么在开发中如何进行选择呢？

选择一：传统的Ajax是基于XMLHttpRequest（XHR）
为什么不用它呢？
配置和调用方式等非常混乱；
编码起来看起来就非常蛋疼;
所以在真实开发中很少直接使用，而是使用jQuery-Ajax。


	选择二：在前面的学习中，我们经常会使用jQuery-Ajax
	
    优点：

相对于传统的Ajax非常好用。

...]]></description><category></category></item><item><title><![CDATA[时间复杂度]]></title><link>https://blog.youkuaiyun.com/third_/article/details/120031442</link><guid>https://blog.youkuaiyun.com/third_/article/details/120031442</guid><author>third_</author><pubDate>Mon, 06 Sep 2021 21:31:41 +0800</pubDate><description><![CDATA[常见的常数时间的操作

常见的算数运算（+、-、*、/、%等）
	常见的位运算（&gt;&gt;、&gt;&gt;&gt;、&lt;&lt; 、|、&amp;、^等）
	赋值、比较、自增、自减操作等
	数组寻址操作
总之，执行时间固定的操作都是常数时间的操作。

反之，执行时间不固定的操作，都不是常数时间的操作。



常见的时间复杂度：

排名从好到差

O(1)

O(logN)

O(N)

O(N*logN)

O(N^2)O(N^3) ...O(N^K)

O(N^2)O(N^3) ......]]></description><category></category></item><item><title><![CDATA[数组中哪些方法是响应式的]]></title><link>https://blog.youkuaiyun.com/third_/article/details/120140242</link><guid>https://blog.youkuaiyun.com/third_/article/details/120140242</guid><author>third_</author><pubDate>Mon, 06 Sep 2021 17:20:38 +0800</pubDate><description><![CDATA[安抚
]]></description><category></category></item><item><title><![CDATA[webpack]]></title><link>https://blog.youkuaiyun.com/third_/article/details/119994809</link><guid>https://blog.youkuaiyun.com/third_/article/details/119994809</guid><author>third_</author><pubDate>Mon, 30 Aug 2021 13:31:10 +0800</pubDate><description><![CDATA[一、认识webpack

1、什么是webpack？
官方解释如下：
At its core，webpack is a static module bundler for modern JavaScript applications.
从本质上来讲，webpack是一个现代的JavaScript应用的静态模块打包工具。

从两个点来解释就是：模块和打包


（1）前端模块化：

目前使用前端模块化的一些方案：AMD、CDM、CommonJS、ES6
	在ES6之前，我们要想进行模块化开发，就必须借助于其..]]></description><category></category></item><item><title><![CDATA[231321vue]]></title><link>https://blog.youkuaiyun.com/third_/article/details/119969965</link><guid>https://blog.youkuaiyun.com/third_/article/details/119969965</guid><author>third_</author><pubDate>Sat, 28 Aug 2021 16:42:05 +0800</pubDate><description><![CDATA[为什么使用slot

slot翻译为插槽：

在生活中很多地方都有插槽，电脑的USB插槽，插板中的电源插槽。

插槽的目的是让我们原来更多的设备具备更多的扩展性。

比如电脑的USB我们可以插入U盘、硬盘、手机、音响、键盘、鼠标等等。

组件的插槽：

组件的插槽也是为了让我们封装的组件更加具有扩展性。

让使用者可以决定组件内部的一些内容到底展示什么。

如：移动网站中的导航栏。

移动开发中，几乎每个页面都有导航栏。

导航栏我们必然会封装成一个插件，比如nav-bar组件。

一旦有了这个组件，我们就]]></description><category></category></item><item><title><![CDATA[Vue学习总结（十三）——父子组件通信]]></title><link>https://blog.youkuaiyun.com/third_/article/details/119919012</link><guid>https://blog.youkuaiyun.com/third_/article/details/119919012</guid><author>third_</author><pubDate>Wed, 25 Aug 2021 21:21:57 +0800</pubDate><description><![CDATA[1、父子组件的通信

在上一个小节中，我们提到了子组件是不能引用父组件或者Vue实例的数据的。

但是，在开发中，往往一些数据确实需要从上层传递到下层：

比如在一个页面中，我们从服务器请求到了很多的数据。
	其中一部分数据，并非是我们整个页面的大组件来展示的，而是需要下面的子组件进行展示。
	这个时候，并不会让子组件再次发送一个网络请求，而是直接让大组件（父组件）将数据传递给小组件（子组件）。
Vue官方关于父子组件间的通信提到了：

通过prop向子组件传递数据。
	通过事件向父组件发送消息。
真实的.]]></description><category></category></item><item><title><![CDATA[Vue学习总结（十二）——组件化]]></title><link>https://blog.youkuaiyun.com/third_/article/details/119875942</link><guid>https://blog.youkuaiyun.com/third_/article/details/119875942</guid><author>third_</author><pubDate>Mon, 23 Aug 2021 21:13:42 +0800</pubDate><description><![CDATA[1、什么是组件化

组件化的思想：

如果我们将页面中所有的逻辑全部放在一起，处理起来就会变得非常复杂，而且不利于后续的管理以及扩展。
	但如果，我们将一个页面拆分成一个个小的功能块，每个功能块完成属于自己这部分独立的功能，那么之后整个页面的管理和维护就变得非常容易了。

...]]></description><category></category></item><item><title><![CDATA[Vue学习总结（十）——循环遍历 v-for指令]]></title><link>https://blog.youkuaiyun.com/third_/article/details/119851198</link><guid>https://blog.youkuaiyun.com/third_/article/details/119851198</guid><author>third_</author><pubDate>Sun, 22 Aug 2021 18:31:05 +0800</pubDate><description><![CDATA[1、v-for遍历数组

当我们有一组数据需要进行渲染时，我们就可以使用v-for来完成。

v-for的语法类似于JavaScript中的for循环。
	格式如下： item in items的形式。
（1）在遍历的过程中，没有使用索引值，下标值。语法格式：v-for="item in items"

（2）如果在遍历的过程中，我们需要拿到索引值。语法格式：(item, index) in items


&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;.]]></description><category></category></item><item><title><![CDATA[Vue学习总结（十一）——表单绑定v-model指令]]></title><link>https://blog.youkuaiyun.com/third_/article/details/119812621</link><guid>https://blog.youkuaiyun.com/third_/article/details/119812621</guid><author>third_</author><pubDate>Thu, 19 Aug 2021 22:33:05 +0800</pubDate><description><![CDATA[表单控件在实际开发中是非常常见的。特别是用户信息的提交，需要大量的表单。

Vue中使用v-model指令来实现表单元素和数据的双向绑定。
]]></description><category></category></item><item><title><![CDATA[ES6语法（三）——对象字面量增强写法]]></title><link>https://blog.youkuaiyun.com/third_/article/details/119619236</link><guid>https://blog.youkuaiyun.com/third_/article/details/119619236</guid><author>third_</author><pubDate>Wed, 11 Aug 2021 23:12:08 +0800</pubDate><description><![CDATA[1、属性的增强写法


&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script src="../js/vue.js"&gt;&lt;/script&gt;
&lt;script&gt;
    // const obj = new ob]]></description><category></category></item><item><title><![CDATA[Vue学习总结（四）——Vue的生命周期]]></title><link>https://blog.youkuaiyun.com/third_/article/details/118423605</link><guid>https://blog.youkuaiyun.com/third_/article/details/118423605</guid><author>third_</author><pubDate>Fri, 02 Jul 2021 21:30:30 +0800</pubDate><description><![CDATA[一.认识Vue.js

二.Vue.js安装方式

三.Vue.js初体验

四.Vue.js的MVVM
]]></description><category></category></item><item><title><![CDATA[Vue学习总结（一）——Vue.js的安装]]></title><link>https://blog.youkuaiyun.com/third_/article/details/110674427</link><guid>https://blog.youkuaiyun.com/third_/article/details/110674427</guid><author>third_</author><pubDate>Tue, 22 Jun 2021 21:08:10 +0800</pubDate><description><![CDATA[一.Web标准的构成

（1）结构HTML

（2）表现CSS

（3）行为JAVAScript


]]></description><category></category></item><item><title><![CDATA[每日一道Leetcode算法——520.检测大写字母——2021.05.20]]></title><link>https://blog.youkuaiyun.com/third_/article/details/117094451</link><guid>https://blog.youkuaiyun.com/third_/article/details/117094451</guid><author>third_</author><pubDate>Fri, 21 May 2021 00:28:08 +0800</pubDate><description><![CDATA[题干：

给定一个单词，你需要判断单词的大写使用是否正确。

我们定义，在以下情况时，单词的大写用法是正确的：

全部字母都是大写，比如"USA"。
单词中所有字母都不是大写，比如"leetcode"。
如果单词不只含有一个字母，只有首字母大写，比如"Google"。
否则，我们定义这个单词没有正确使用大写字母。

示例 1:

输入: "USA"
输出: True
示例 2:

输入: "FlaG"
输出: False
注意: 输入是由大写和小写拉丁字母组成的非空单词。

解题思路：

因为ASCII..]]></description><category></category></item><item><title><![CDATA[JavaScript基础]]></title><link>https://blog.youkuaiyun.com/third_/article/details/114490318</link><guid>https://blog.youkuaiyun.com/third_/article/details/114490318</guid><author>third_</author><pubDate>Sun, 07 Mar 2021 17:22:53 +0800</pubDate><description><![CDATA[一.什么是JavaScript

   JavaScript是一种基于对象和事件驱动的客户端脚本语言，最初的设计是为了检验HTML表单输入的正确性，起源于Netscape公司的LiveScript语言。  

二.JavaScript的组成部分

   完整的JavaScript是由ECMAScript（语法）、Brower Objects（DOM、BOM）（特性）组成的。

四.在HTML中使用JavaScript




...]]></description><category></category></item><item><title><![CDATA[CSS优先级之选择器权重]]></title><link>https://blog.youkuaiyun.com/third_/article/details/111656878</link><guid>https://blog.youkuaiyun.com/third_/article/details/111656878</guid><author>third_</author><pubDate>Thu, 24 Dec 2020 21:33:43 +0800</pubDate><description><![CDATA[1.选择器相同的情况下，选择离着最近的样式。

2.选择器不同的情况下，不同的样式有不同的权重：

选择器
			选择器权重
		继承或者*
			0,0,0,0
		元素选择器
			0,0,0,1
		类选择器，伪类选择器
			0,0,1,0
		ID选择器
			0,1,0,0
		行内样式 style=""
			1,0,0,0
		!important 重要的
			∞ 无穷大
		
...]]></description><category></category></item><item><title><![CDATA[JavaScript的内置函数]]></title><link>https://blog.youkuaiyun.com/third_/article/details/111407596</link><guid>https://blog.youkuaiyun.com/third_/article/details/111407596</guid><author>third_</author><pubDate>Sat, 19 Dec 2020 17:17:12 +0800</pubDate><description><![CDATA[eval()：求字符串中表达式的值
isFinite()：判断一个数值是否为无穷大
isNaN()：判断一个数值是否为NaN
parseInt()：将字符型转换为整形
parseFloat()：将字符型转换为浮点型
encodeURI()：将字符串转换为有效的URL
encodeURIComponent()：将字符串转换为有效的URL组件
decodeURI()：对endodeURL()编码的文本进行解码。
decodeURIComponent()：对encodeURLComponent()编码的文本进行.]]></description><category></category></item><item><title><![CDATA[JavaScript的关键字详解]]></title><link>https://blog.youkuaiyun.com/third_/article/details/111405802</link><guid>https://blog.youkuaiyun.com/third_/article/details/111405802</guid><author>third_</author><pubDate>Sat, 19 Dec 2020 15:49:42 +0800</pubDate><description><![CDATA[1. abstract--

2. continue

3. finally

4. instanceof

5. private

6. this

7. boolean

8. default

9. float

10. int

11. public

12. throw

13. break

14. byte

15. case

16. catch

17. char

18. class

19. do

20. double

21. else

22. extends

23. fals]]></description><category></category></item></channel></rss>