<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[大叔的私享课]]></title><description><![CDATA[为学习前端开发不再枯燥、困难和迷茫而努力。]]></description><link>https://blog.youkuaiyun.com/kingj_fullstack</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kingj_fullstack]]></copyright><item><title><![CDATA[const关键字：终于拥有真正的常量声明语句]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/112989738</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/112989738</guid><author>kingj_fullstack</author><pubDate>Fri, 22 Jan 2021 16:45:28 +0800</pubDate><description><![CDATA[你好，今天大叔想和你唠扯唠扯 ES6 新增的关键字 —— const。在说 const 关键字之前，大叔先和你唠唠大叔自己对 const 的感受 —— JavaScript 尼玛终于可以声明真正的常量啦！大叔为啥会发出这样滴感叹？实在是“天下苦秦久矣”呀~]]></description><category></category></item><item><title><![CDATA[let关键字：加强版的var关键字]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/112966604</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/112966604</guid><author>kingj_fullstack</author><pubDate>Thu, 21 Jan 2021 16:47:54 +0800</pubDate><description><![CDATA[你好，今天大叔想和你唠扯唠扯 ES6 新增的关键字 —— let。再说 let 的具体用法之前，大叔想先和你说说大叔自己对 let 的感受 —— let 其实就是加强版的 var。为啥这么说呢？别急，且听大叔慢慢道来。]]></description><category></category></item><item><title><![CDATA[2020年JavaScript全球调查报告，一起来看看趋势吧]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/112755864</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/112755864</guid><author>kingj_fullstack</author><pubDate>Sun, 17 Jan 2021 18:57:16 +0800</pubDate><description><![CDATA[尽管2020年很糟糕，但 JavaScript 整体上仍然在设法向前发展。得益于像可选链(Optional Chaining)和空值合并运算符(Nullish Coalescing)这样的新特性，语言本身在不断改进，而 TypeScript 的广泛使用将静态类型化普及到了一个新的高度。]]></description><category></category></item><item><title><![CDATA[本地配置多个 Git 账户信息，满足不同的 Git 平台]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109730369</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109730369</guid><author>kingj_fullstack</author><pubDate>Mon, 16 Nov 2020 21:27:43 +0800</pubDate><description><![CDATA[因为工作的时候为了访问速度快，我把很多仓库都迁移到了码云。但是呢，个人的一些东西还是保留在了GitHub) 了。这样就存在一个不得不解决的问题，就是两个平台的注册时使用的邮箱不同，用户名也不同。

之前都是每次 `push` 的时候输入账号和密码来解决这个问题的，但是这样实在是太麻烦了。于是，求助了一下万能的百度（其实更喜欢用 Google），就有了这篇文章。]]></description><category></category></item><item><title><![CDATA[[Mozilla]Ajax快速入门]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109636017</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109636017</guid><author>kingj_fullstack</author><pubDate>Thu, 12 Nov 2020 08:53:04 +0800</pubDate><description><![CDATA[本文翻译于Mozilla Developer Network
翻译者：金云龙
原文地址：https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

什么是 Ajax？
Ajax 的意思就是异步的 JavaScript 和 XML。简而言之，它是使用 XMLHttpRequest 对象与服务器端通信的脚本语言。它可以发送及接收各种格式的信息，包括 JSON、XML、HTML 和文本文件。Ajax 最为吸引人的就是它的“异步”特性，这意味着Aj.]]></description><category></category></item><item><title><![CDATA[搞懂什么是Node.js原来这么简单]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109636000</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109636000</guid><author>kingj_fullstack</author><pubDate>Thu, 12 Nov 2020 08:51:43 +0800</pubDate><description><![CDATA[Node.js 的官方介绍
在 Node.js 的官方网站的首页中，有这样一句话来描述 Node.js：

Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.

翻译过来的意思就是：

Node.js 是基于 Chrome 的 V]]></description><category></category></item><item><title><![CDATA[Node.js 长期支持版本和当前发布版本的区别]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635984</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635984</guid><author>kingj_fullstack</author><pubDate>Thu, 12 Nov 2020 08:50:43 +0800</pubDate><description><![CDATA[首先，关于 Node.js 为什么会同时支持两个版本这个问题，Node.js 官方博客的一篇文章中进行解释：
Node.js is growing, and growing fast. As we continue to innovate quickly, we will focus on two different release lines. One release line will fall under our LTS plan. All release lines that have LTS su]]></description><category></category></item><item><title><![CDATA[一款好看的 VSCode 代码主题和图标主题]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635962</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635962</guid><author>kingj_fullstack</author><pubDate>Thu, 12 Nov 2020 08:49:09 +0800</pubDate><description><![CDATA[此文首发于个人博客

自从微软推出 Visual Studio Code 这款编辑器之后，就基本上没用过其他的编辑器和 IDE 了。到底是啥原因这么爱这款编辑器呢？启动速度快、插件市场成熟、主流开发语言基本都支持。这么说吧，在遇到 VS Code 之前我是用 WebStorm 这个的，换了 VS Code 之后简直就是起飞的节奏。
有点扯远了，咳咳… …
一直以来基本上都是使用 VS Code 默认的主题和图标主题，不是因为好看，是一直都没怎么注意过这个事儿。直到看到了 Ayu 这个主题。
废话不多说，先.]]></description><category></category></item><item><title><![CDATA[用 Cmder 替换自带的命令提示符，让开发更高效]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635940</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635940</guid><author>kingj_fullstack</author><pubDate>Thu, 12 Nov 2020 08:47:45 +0800</pubDate><description><![CDATA[不知道有多少小伙伴和我一样，一直是 Windows 和 Mac 双系统并用的状态。说句心里话 Mac 确实是贵，但真心是用了就回不去。要不是有些软件只有 Windows 版本的，我是真心不想在用 Windows 系统了（玩游戏的小伙伴无视）！
扯远了不是，来说主题吧~
之前一直苦于 Windows 系统下自带的命令提示符没有 Mac 系统自带的终端好用，偶然间让我知道了 Cmder，于是便百度了一下（国内不翻墙的情况没法用 Google 啊~），居然还有这等神奇存在，原谅我的孤陋寡闻吧！
什么是 Cmder]]></description><category></category></item><item><title><![CDATA[举例解析 JavaScript 中的防抖和节流]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635906</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635906</guid><author>kingj_fullstack</author><pubDate>Thu, 12 Nov 2020 08:45:19 +0800</pubDate><description><![CDATA[说明：优快云 的编辑器无法直接嵌入 CodePen 演示代码，可以看我的 个人博客的这篇文章

防抖（Debounce）和节流（throttle）都是用来控制某个函数在一定时间内执行多少次的技巧，两者相似而又不同。
当我们给 DOM 绑定事件的时候，加了防抖和节流的函数变得特别有用。为什么呢？因为我们在事件和函数执行之间加了一个控制层。记住，我们是无法控制 DOM 事件触发频率的。
看下滚动事件的例子：

  See the Pen 
  Scroll events counter by Corbach.]]></description><category></category></item><item><title><![CDATA[Express框架如何接收POST方法的请求参数]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635878</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/109635878</guid><author>kingj_fullstack</author><pubDate>Thu, 12 Nov 2020 08:42:29 +0800</pubDate><description><![CDATA[问题描述
使用 Express 框架时，通过 POST 方式处理客户端的请求参数，但是通过 req.query 接收到的一直都是 {}。
问题还原
为了清晰地记录这个问题，我将问题进行抽离单独还原这个问题的场景。现在抽离之后的工程目录如下：
|--app.js
|--index.ejs
|--package.json

这里使用了 ejs 模板引擎，所以要先安装 ejs 和 Express 框架：
npm install --save--dev express
npm install --sve--dev ]]></description><category></category></item><item><title><![CDATA[ECMAScript2017新特性]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107612733</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107612733</guid><author>kingj_fullstack</author><pubDate>Mon, 27 Jul 2020 15:26:12 +0800</pubDate><description><![CDATA[ES2017 是 ECMAScript 的第 8 个版本，正式名称应该叫做 ECMAScript2017，发布于 2017 年 6 月，相比于 ES2015 来讲 ES2017 也只是一个小版本更新，但是同时也带来了很多有用的新功能。
Object 的 values 方法
首先是为 Object 对象新增了 values() 方法，这个方法和 ECMAScript5 当中的 keys() 方法非常类似，keys() 方法返回的是对象中所有键所组成的数组，values() 方法返回的是对象中所有值所组成的数组]]></description><category></category></item><item><title><![CDATA[ECMAScript2016新特性]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107598424</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107598424</guid><author>kingj_fullstack</author><pubDate>Sun, 26 Jul 2020 19:48:51 +0800</pubDate><description><![CDATA[ES2016 正式名称叫做 ECMAScript2016，发布于 2016 年 6 月，与 ES2015 相比 ES2016 只是一个小版本更新，只包含两个小功能。
数组的 includes 方法
首先，就是数组实例的 includes() 方法，这个方法可以用来检查数组当中是否包含指定成员变得更加简单。在这之前想要检查某个数组当中是否存在某个指定的成员，就必须使用数组的 indexOf() 方法来实现。如下代码所示：
const arr = ['foo', 1, NaN, false]

console.]]></description><category></category></item><item><title><![CDATA[ES2015 生成器与生成器的应用场景]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107571281</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107571281</guid><author>kingj_fullstack</author><pubDate>Fri, 24 Jul 2020 22:58:38 +0800</pubDate><description><![CDATA[生成器
在 ECMAScript2015 中新增了一种叫做生成器的函数，英文为 Generator。引入这样一个新特性的目的就是能够在复杂的异步代码中减少回调函数嵌套所产生的的问题，从而提供更好的异步编程的解决方案。
这里先来了解一下生成器的语法结构，如下代码所示：
function* foo() {
  console.log('this is generator function.')
  return '前端课湛'
}

定义一个生成器函数的方式就是函数表达式定义函数方式的 function 关键字后]]></description><category></category></item><item><title><![CDATA[ES2015 实现可迭代接口与迭代器模式]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107558720</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107558720</guid><author>kingj_fullstack</author><pubDate>Fri, 24 Jul 2020 12:52:04 +0800</pubDate><description><![CDATA[for…of 循环
在 ECMAScript 中遍历数据有很多中方法，首先是最基本的 for 循环，它比较适用于变量普通的数组，然后就是 for...in 循环，它比较适合于遍历键值对，再有就是一些对象的遍历方法，比如数组的 forEach() 方法。这些各种各样的遍历数据的方式都会有一定的局限性，所以 ECMAScript2015 借鉴了很多其他语言引入了一种全新的 for...of 循环，这种循环方式作为遍历所有数据结构的统一方式。换句话说，只要明白 for…of 内部工作的原理就可以使用这种循环去遍历]]></description><category></category></item><item><title><![CDATA[你是否能看清这个世界，取决于透明度]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107548873</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107548873</guid><author>kingj_fullstack</author><pubDate>Thu, 23 Jul 2020 21:51:03 +0800</pubDate><description><![CDATA[书接上文，上回书咱们讲了 CSS 里面有关设置颜色值的三种方式。三种方式呢，具体的用法不同、使用的场景可能也不同，但是三种方式咱们都是需要掌握的。尤其是色彩关键字和 RGB 模式这两种，毕竟是目前比较主流的用法。

 接下来，咱们来讲一讲颜色世界里面的最后一个内容 - 透明度。没错，你没有看错，就是透明度！之前咱们也不是没有说过它，在说 background-color 属性的默认值时，说是 transparent 就表示透明。

但是，现在咱们要单独地来讲一讲透明度这个内容。]]></description><category></category></item><item><title><![CDATA[表示一个颜色居然有这么多种方式]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107548824</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107548824</guid><author>kingj_fullstack</author><pubDate>Thu, 23 Jul 2020 21:49:44 +0800</pubDate><description><![CDATA[书接上文，上回书咱们讲了 CSS 中的前景色和背景色。说白了，所谓的前景色就是给字体设置颜色，不过人家就叫前景色，咱也是没啥办法。背景色相对来说是比较简单的，但是要注意 background-color 属性的默认值是 transparent 表示透明。

知道了怎么设置前景色和背景色了，可是咱们一直都是在用代表某个颜色的英文单词来设置颜色的。这时候，你可能会问了，除了这种方式之外，还有没有其他方式同样可以设置颜色呢？

接下来，咱们就来说一说可以设置颜色值的类型。]]></description><category></category></item><item><title><![CDATA[CSS中的颜色其实很简单，不信你看]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107548790</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107548790</guid><author>kingj_fullstack</author><pubDate>Thu, 23 Jul 2020 21:47:44 +0800</pubDate><description><![CDATA[如果你已经看到了这儿，说明你已经掌握了 CSS 的选择器。学习选择器确实是一个很枯燥乏味的事情，又要记住数量庞大的选择器，还有它们的用法以及使用的时候需要注意的地方。

接下来，咱们来讲一讲一个比较有趣的内容 - 颜色。CSS 里面有关颜色属性只有两个，一个是用来设置字体颜色的 color 属性，咱们一般把它称为前景色；一个是用来设置背景颜色的 background-color 属性，咱们一般把它称为背景色。]]></description><category></category></item><item><title><![CDATA[ES2015 Symbol数据类型]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107544042</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107544042</guid><author>kingj_fullstack</author><pubDate>Thu, 23 Jul 2020 18:06:15 +0800</pubDate><description><![CDATA[对象的属性名同名的问题
在 ECMAScript2015 之前对象的属性名都是字符串类型，而字符串是有可能会重复的，那如果重复的话就会产生冲突。比如创建一个用来数据缓存的对象，约定这个对象是全局共享的，然后通过注释的方式模拟不同的 JavaScript 文件使用这个数据缓存对象的情况。
比如在 shared.js 文件中创建这个数据缓存对象，如下代码所示：
const cache = {}

然后在 a.js 文件当中向数据缓存对象添加缓存数据，如下代码所示：
cache['foo'] = Math.ran]]></description><category></category></item><item><title><![CDATA[ES2015 Set与Map数据结构]]></title><link>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107540509</link><guid>https://blog.youkuaiyun.com/kingj_fullstack/article/details/107540509</guid><author>kingj_fullstack</author><pubDate>Thu, 23 Jul 2020 16:18:01 +0800</pubDate><description><![CDATA[Set 数据结构
ECMAScript2015 中新增了一个叫做 Set 的全新数据结构，可以理解为集合，它与传统的数组非常的类似。不过，Set 内部的成员是不允许重复的。那也就是说，每一个值在同一个 Set 当中是唯一的。
Set 是一个类型，可以通过 new Set() 构造函数创建一个实例对象。如下代码所示：
const s = new Set()

然后，再通过 Set 的实例方法 add() 向 Set 集合添加数据。如下代码所示：
s.add(1).add(2).add(3).add(4)

由]]></description><category></category></item></channel></rss>