<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cauyahui的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cauyahui</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cauyahui]]></copyright><item><title><![CDATA[package.json版本释义]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/98880217</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/98880217</guid><author>cauyahui</author><pubDate>Thu, 08 Aug 2019 17:47:00 +0800</pubDate><description><![CDATA[指定版本：比如1.2.2，遵循“大版本.次要版本.小版本”的格式规定，安装时只安装指定版本。
波浪号（tilde）+指定版本：比如~1.2.2，表示安装1.2.x的最新版本（不低于1.2.2），但是不安装1.3.x，也就是说安装时不改变大版本号和次要版本号。
插入号（caret）+指定版本：比如ˆ1.2.2，表示安装1.x.x的最新版本（不低于1.2.2），但是不安装2.x.x，也就是说安装时不...]]></description><category></category></item><item><title><![CDATA[js原型链图解]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/96479345</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/96479345</guid><author>cauyahui</author><pubDate>Fri, 19 Jul 2019 14:02:36 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[nodejs错误处理]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/96272498</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/96272498</guid><author>cauyahui</author><pubDate>Wed, 17 Jul 2019 09:31:03 +0800</pubDate><description><![CDATA[为什么要处理异常？

1.不处理直接导致程序奔溃，这显然不是我们想要的
2.导致请求无法被释放，直至连接超时。用户体验体验非常差，我们要做的应该是在出错时，给用户一个友好的提示，并记录下此次异常，以便排查。

Node.js中常用的异常处理方式
// 每秒钟打印一次时间，确保程序没有奔溃
(function loop() {
    console.log(new Date().getTime()...]]></description><category></category></item><item><title><![CDATA[js匿名函数和具名函数]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/94010296</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/94010296</guid><author>cauyahui</author><pubDate>Fri, 28 Jun 2019 15:50:18 +0800</pubDate><description><![CDATA[按照ECMAScript标准，函数表达式的样式如下(opt记号代表的是可选的，也就是可有可无的意思):
FunctionExpression :
function Identifier opt ( FormalParameterList opt ){ FunctionBody }

函式表达式中函数的识别名是可以不需要有的，有名称的函数表达式，也就是所谓的"具名函数表达式"(Named funct...]]></description><category></category></item><item><title><![CDATA[使用 LDAP 实现 Node.js Bluemix 应用程序中的身份验证和授权]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/89973064</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/89973064</guid><author>cauyahui</author><pubDate>Wed, 08 May 2019 20:44:00 +0800</pubDate><description><![CDATA[如果您已经有一个内部 IT 基础架构，它很可能包含一个 LDAP 服务器来提供用户身份。在许多情况下，最好继续使用该目录，甚至在您的应用程序位于 Bluemix® 上时也这样做。在本教程中，我将展示如何实现此操作，同时还将介绍 LDAP 协议本身的基础知识。
构建您的应用程序需要做的准备工作

一个 Bluemix 帐户。
HTML 和 JavaScript 的知识。
MEAN 应用程序堆栈（至少...]]></description><category></category></item><item><title><![CDATA[html的button引发的问题总结]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/89449829</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/89449829</guid><author>cauyahui</author><pubDate>Mon, 22 Apr 2019 13:09:30 +0800</pubDate><description><![CDATA[在日常使用中我们往往为了简写，省略button标签的type属性。类似如下的写法：
&lt;button&gt;Click Me!&lt;/button&gt;

但是当我们为button绑定click事件以后，往往会出现页面重定向的现象，很难排查原因。
查阅官方文档，发现

请始终为按钮规定 type 属性。Internet Explorer 的默认类型是 “button”，而其他浏览器中（包括...]]></description><category></category></item><item><title><![CDATA[npm安装机制]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/86607094</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/86607094</guid><author>cauyahui</author><pubDate>Wed, 23 Jan 2019 11:23:47 +0800</pubDate><description><![CDATA[作者：Roscoe
链接：https://www.zhihu.com/question/66629910/answer/273992383
来源：知乎
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
输入 npm install 命令并敲下回车后，会经历如下几个阶段（以 npm 5.5.1 为例）：
执行工程自身 preinstall
当前 npm 工程如果定义了 prein...]]></description><category></category></item><item><title><![CDATA[nodejs事件循环]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/86579698</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/86579698</guid><author>cauyahui</author><pubDate>Mon, 21 Jan 2019 17:27:20 +0800</pubDate><description><![CDATA[

]]></description><category></category></item><item><title><![CDATA[js隐式类型转换]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/86569573</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/86569573</guid><author>cauyahui</author><pubDate>Mon, 21 Jan 2019 10:10:55 +0800</pubDate><description><![CDATA[你所忽略的js隐式转换
你有没有在面试中遇到特别奇葩的js隐形转换的面试题，第一反应是怎么会是这样呢？难以自信，js到底是怎么去计算得到结果，你是否有深入去了解其原理呢？下面将深入讲解其实现原理。
其实这篇文章初稿三个月前就写好了，在我读一些源码库时，遇到了这些基础知识，想归档整理下，就有了这篇文章。由于一直忙没时间整理，最近看到了这个比较热的题，决定把这篇文章整理下。
const a = {
 ...]]></description><category></category></item><item><title><![CDATA[vue-cli3配置autofix]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/84661739</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/84661739</guid><author>cauyahui</author><pubDate>Fri, 30 Nov 2018 17:07:26 +0800</pubDate><description><![CDATA[Vue CLI 3 内部的 webpack 配置是通过 webpack-chain 维护的。我们可以通过修改eslint-loader配置来达到以前eslint自动修复的功能。
// vue.config.js
module.exports = {
  chainWebpack: config =&amp;gt; {
    config.module
      .rule('eslint')
    ...]]></description><category></category></item><item><title><![CDATA[通俗浅显的理解Promise中的then]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/81022410</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/81022410</guid><author>cauyahui</author><pubDate>Thu, 12 Jul 2018 21:06:22 +0800</pubDate><description><![CDATA[Promise，ES6中定义的规范，不会使用Promise，都不敢说自己用过ES6，大部分介绍Promise的规范的文章对于新手小白来说看得云里雾里，且并不是通俗易懂。本文通过实例介绍讲述Promise中then的的最通俗应用理解，代码建立在不出现异常的情况的操作下，不严谨之处，请以官方规范为标准。

先看一下下面4个Promise到底有什么区别呢？

doSomething().then(fun...]]></description><category></category></item><item><title><![CDATA[nginx跨域之add_header说明]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/80769456</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/80769456</guid><author>cauyahui</author><pubDate>Fri, 22 Jun 2018 10:05:46 +0800</pubDate><description><![CDATA[由于浏览器的安全限制，前端js代码无法直接访问不同域下的资源。只要协议、域名、端口有任何一个不同，都被当作是不同的域。

跨域的解决方案有很多，目前常用的方案是通过nginx代理服务器给返回的响应头添加cors跨域配置项来解决。

在此对nginx配置add_header进行说明：


  格式：add_header name value [always]; 
  name是添加的头名称，valu...]]></description><category></category></item><item><title><![CDATA[localforage--离线存储方案]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/80652136</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/80652136</guid><author>cauyahui</author><pubDate>Mon, 11 Jun 2018 14:47:49 +0800</pubDate><description><![CDATA[localforage–是一个高效而强大的离线存储方案。它封装了IndexedDB, WebSQL, or localStorage，并且提供了一个简化的类似localStorage的API。



在默认情况下会优先采用使用IndexDB、WebSQL、localStorage进行后台存储，
即浏览器不支持IndexDB时尝试采用WebSQL，既不支持IndexDB又不支持WebSQL时采用
l...]]></description><category></category></item><item><title><![CDATA[前端知识小记]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/80611541</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/80611541</guid><author>cauyahui</author><pubDate>Thu, 07 Jun 2018 17:24:19 +0800</pubDate><description><![CDATA[1.通过webpack.DefinePlugin可以定义js中可用的变量，在编译阶段进行全局替换

new webpack.DefinePlugin({
    'process.env.NODE_ENV': JSON.stringify('production')
})
DefinePlugin 在原始的源码中执行查找和替换操作. 在导入的代码中,
任何出现 process.env.NODE_E...]]></description><category></category></item><item><title><![CDATA[vue--知识摘要]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/79277820</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/79277820</guid><author>cauyahui</author><pubDate>Wed, 07 Feb 2018 11:06:35 +0800</pubDate><description><![CDATA[数组更新检测


  变异方法 (mutation method)，顾名思义，会改变被这些方法调用的原始数组。相比之下，也有非变异 (non-mutating method) 方法，这些不会改变原始数组，但总是返回一个新数组。 
  Vue 包含一组观察数组的变异方法，所以它们也将会触发视图更新。这些方法都是直接作用在原始数组上，可以改变原始数组，方法有：



push-向数组的开头添加一个或更]]></description><category></category></item><item><title><![CDATA[webpack知识小结--require.context方法]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/79178334</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/79178334</guid><author>cauyahui</author><pubDate>Sat, 27 Jan 2018 09:30:19 +0800</pubDate><description><![CDATA[带表达式的 require 语句


  如果你的 require参数含有表达式(expressions)，会创建一个上下文(context)，因为在编译时(compile time)并不清楚具体是哪一个模块被导入




require(&quot;./template/&quot; + name + &quot;.ejs&quot;);

webpack 解析 require() 的调用，提取出来如下这些信息：



Directo]]></description><category></category></item><item><title><![CDATA[GeoServer中的几个核心概念]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/78030596</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/78030596</guid><author>cauyahui</author><pubDate>Tue, 19 Sep 2017 15:30:05 +0800</pubDate><description><![CDATA[GeoServer中的几个核心概念]]></description><category></category></item><item><title><![CDATA[六角网格相关算法]]></title><link>https://blog.youkuaiyun.com/cauyahui/article/details/72229726</link><guid>https://blog.youkuaiyun.com/cauyahui/article/details/72229726</guid><author>cauyahui</author><pubDate>Mon, 15 May 2017 21:56:55 +0800</pubDate><description><![CDATA[六角网格相关算法]]></description><category></category></item></channel></rss>