<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mr.ShyZhang趟过的前端“小路坑”]]></title><description><![CDATA[前端路漫漫其修远兮]]></description><link>https://blog.youkuaiyun.com/thunderevil35</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; thunderevil35]]></copyright><item><title><![CDATA[npm 与 package.json 快速入门教程]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/81092384</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/81092384</guid><author>thunderevil35</author><pubDate>Wed, 18 Jul 2018 09:28:49 +0800</pubDate><description><![CDATA[什么是 npm？



官方文档中对它的介绍是：


npm makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you’re sharing.


即： npm 是一个包管理器，它让 JavaScript 开发者分享、复用代码更方...]]></description><category></category></item><item><title><![CDATA[Node.js fs模块 删除非空目录]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80976714</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80976714</guid><author>thunderevil35</author><pubDate>Mon, 09 Jul 2018 20:21:06 +0800</pubDate><description><![CDATA[这里主要是进一步使用其他方法删除目录，提高自己对fs模块提供的api的熟悉度异步删除（深度模式）核心思想就是遍历完成某一个目录以后，在遍历另外一个目录，最后开始冒泡删除const fs = require('fs')
const path = require('path')

/**
 *
 * @desc 异步深度循环删除目录
 * @param {string} dir 需要删除的目录
 * ...]]></description><category></category></item><item><title><![CDATA[原生JS获取radio 和 CheckBox 和 selected 的选中的值]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80782450</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80782450</guid><author>thunderevil35</author><pubDate>Sun, 08 Jul 2018 14:46:49 +0800</pubDate><description><![CDATA[原生JS获取radio 和 CheckBox 和 selected 的选中的值]]></description><category></category></item><item><title><![CDATA[Node.js  Error: Can't set headers after they are sent错误]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80959157</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80959157</guid><author>thunderevil35</author><pubDate>Sun, 08 Jul 2018 14:35:22 +0800</pubDate><description><![CDATA[报错：Error: Can't set headers after they are sent，怎么解决？      使用response.end()发送响应时，在此前加一个return，即return response.end()，类似的response.send()等函数也要加return，而且是所有的地方都要加，即使是a请求的响应没加return，当b请求到来时，也会报错。一、问题说明   ...]]></description><category></category></item><item><title><![CDATA[Node中的Http模块]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80959118</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80959118</guid><author>thunderevil35</author><pubDate>Sun, 08 Jul 2018 14:31:23 +0800</pubDate><description><![CDATA[Node中的HttpNode中提供了http模块，其中封装了高效的http服务器和http客户端 http.server是一个基于事件的HTTP服务器，内部是由c++实现的，接口由JavaScript封装 http.request是一个HTTP客户端工具。用户向服务器发送数据。 下面就来分别得介绍一下http的服务端和客户端一、HTTP服务器http.Server实现的，它提供了一套封装级别很低的...]]></description><category></category></item><item><title><![CDATA[改变作用域的方式有： call 、 apply、 bind、eval 、 with]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80560535</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80560535</guid><author>thunderevil35</author><pubDate>Sun, 08 Jul 2018 14:02:00 +0800</pubDate><description><![CDATA[bind方法 与 call 和 apply 区别就是     调用不会立即执行， 执行时候会改变作用域&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;Document&amp;lt;/title&amp;gt;
&amp;lt;/hea]]></description><category></category></item><item><title><![CDATA[gulp工程化]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80954648</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80954648</guid><author>thunderevil35</author><pubDate>Sat, 07 Jul 2018 22:08:03 +0800</pubDate><description><![CDATA[gulp工程化：    它是一个工程化工具。同时也是一个Node第三方模块。安装：    需要两次第一次： 全局安装    npm install -g gulp第二次： 在需要运行的项目目录下安装一次    npm install gulp使用：在该目录下，创建一个文件名为gulpfile.js的文件（文件名必须是gulpfile.js 默认从该文件执行），在内部书写代码。引入模块：var gu...]]></description><category></category></item><item><title><![CDATA[formData上传文件]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80953236</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80953236</guid><author>thunderevil35</author><pubDate>Sat, 07 Jul 2018 17:36:20 +0800</pubDate><description><![CDATA[使用HTML5的formData对象 用ajax异步的方式提交form表单（还可以实现异步提交文件），可参考博客：https://www.cnblogs.com/zhuxiaojie/p/4783939.htmlhttps://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects这里要注意几点：&amp;lt;fo...]]></description><category></category></item><item><title><![CDATA[文件路径匹配模式 globs匹配规则]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80951803</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80951803</guid><author>thunderevil35</author><pubDate>Sat, 07 Jul 2018 15:35:12 +0800</pubDate><description><![CDATA[A.  “*”：匹配文件中0个或者多个字符，但是不会匹配路径中的分隔符，除非路径分隔符出现在末尾。例a)   ./style/* ：能匹配./style目录下的 a.js，x.y，abc，abc/，但不能匹配a/b.jsb)   ./style/*.js ：匹配./style目录下所有的js文件.c)   /style/*.* ：匹配./style目录下所有的文件d)   ./style/*/*....]]></description><category></category></item><item><title><![CDATA[button type属性]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80941725</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80941725</guid><author>thunderevil35</author><pubDate>Fri, 06 Jul 2018 15:34:04 +0800</pubDate><description><![CDATA[button type属性submit	该按钮是提交按钮（除了 Internet Explorer，该值是其他浏览器的默认值）button	该按钮是可点击的按钮（Internet Explorer 的默认值）reset	该按钮是重置按钮（清除表单数据）总结：其他浏览器（除IE浏览器）中，如果button没有设置type属性，默认值为type=&quot;submit&quot;，会进行跳转页面和提交数据的操作，假如想...]]></description><category></category></item><item><title><![CDATA[MongoDB数据库]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80889042</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80889042</guid><author>thunderevil35</author><pubDate>Mon, 02 Jul 2018 20:29:22 +0800</pubDate><description><![CDATA[配置MongoDB环境变量将安装的MongoDB数据库的bin文件夹的路径 添加到电脑全局环境变量path中，这样就可以在全局中使用MongoDB命令进行开启数据库等操作命令1. 创建数据库存储文件数据库程序安装好之后，还要选定一个文件夹作为数据库的存放地点。推荐在C盘根目录下创建一个空目录：2. 数据库开机命令数据库目录创建好之后，可以使用 mongod命令 开机mongod --dbpath ...]]></description><category></category></item><item><title><![CDATA[Node.js Express框架基础了解]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80885222</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80885222</guid><author>thunderevil35</author><pubDate>Mon, 02 Jul 2018 16:55:49 +0800</pubDate><description><![CDATA[NPM： nodejs package manager 官网： www.npmjs.org命令：     npm -v  查看版本号    npm install moduleName  安装模块到本地    npm install moduleName -g 安装模块到全局    npm install 安装项目时使用    npm init 创建项目时使用Express框架:  基于NodeJ...]]></description><category></category></item><item><title><![CDATA[判断卷动到页面的位置]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80817233</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80817233</guid><author>thunderevil35</author><pubDate>Tue, 26 Jun 2018 16:44:08 +0800</pubDate><description><![CDATA[获取页面高度     document.body.clientHeight获取视口高度     document.documentElement.clientHeight获取页面卷动值     document.documentElement.scrollTop判断卷动到页面的位置  到小于距离页面底部200px的时候执行if（document.body.clientHeight - docume...]]></description><category></category></item><item><title><![CDATA[template模板字符串]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80815348</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80815348</guid><author>thunderevil35</author><pubDate>Tue, 26 Jun 2018 15:35:53 +0800</pubDate><description><![CDATA[underscore自定义书写template模板字符串]]></description><category></category></item><item><title><![CDATA[AJAX]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80784270</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80784270</guid><author>thunderevil35</author><pubDate>Tue, 26 Jun 2018 14:55:25 +0800</pubDate><description><![CDATA[原生JS AJAXAJAX兼容性（IE8+）AJAX是浏览器支持的。浏览器支持的方式是通过浏览器内部的构造函数:     现代浏览器： window.XMLHttpRequest    IE(8之前)浏览器： window.ActiveXObjectvar xhr = null;
if(window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();...]]></description><category></category></item><item><title><![CDATA[URl 转码 解码]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80784141</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80784141</guid><author>thunderevil35</author><pubDate>Sat, 23 Jun 2018 15:49:24 +0800</pubDate><description><![CDATA[转码： encodeURIComponent(str);解码： decodeURIComponent(code_str);/aaaaa?username=1234&amp;amp;password=1234&amp;amp;sex=%E7%94%B7&amp;amp;hobby=%E6%89%93%E7%AF%AE%E7%90%83&amp;amp;hobby=%E7%BE%BD%E6%AF%9B%E7%90%83&amp;amp;ho...]]></description><category></category></item><item><title><![CDATA[字符串转对象的三种方式]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80783746</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80783746</guid><author>thunderevil35</author><pubDate>Sat, 23 Jun 2018 15:12:02 +0800</pubDate><description><![CDATA[JSON.parse( str )// 定义一个对象字符串
var str = '{&quot;error&quot;:1,&quot;data&quot;:&quot;用户不存在&quot;}';

// 使用JSON.parse()
var obj = JSON.parse(str);
// 输出该对象
console.log(obj);
eval(&quot;(&quot;+str+&quot;)&quot;)// 定义一个对象字符串
var str = '{&quot;error&quot;:1,&]]></description><category></category></item><item><title><![CDATA[http协议]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80783637</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80783637</guid><author>thunderevil35</author><pubDate>Sat, 23 Jun 2018 15:07:22 +0800</pubDate><description><![CDATA[http协议： 指的是至少两方定下的规则。而Http协议指的是浏览器和服务器之间定下的规则。简单来说： HTTP协议规定了浏览器如何发送请求，服务器如何解析请求，服务器如何返回响应，浏览器如何解析响应。当浏览器地址栏中输入一个URL地址，并按下回车，此时，浏览器会分析URL，并发送HTTP请求，该请求是按照HTTP协议规则生成的。它包含四个部分： 请求首行、 请求头、 请求空行、 请求正文。请求首...]]></description><category></category></item><item><title><![CDATA[node.js基础了解]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80782722</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80782722</guid><author>thunderevil35</author><pubDate>Sat, 23 Jun 2018 14:56:02 +0800</pubDate><description><![CDATA[node.js的特点单线程    非堵塞I/O    事件驱动node,js模块化在node,js中，每一个JS文件就是一个模块在node,js中，分为内置核心模块 和 自定义模块（或者第三方模块）内置核心模块：    这些模块是node,js自带的，比如http url querystring fs（FileSystem）    引入方式：直接调用名称引入var http = require(&quot;...]]></description><category></category></item><item><title><![CDATA[HTML 标准属性 和 自定义属性]]></title><link>https://blog.youkuaiyun.com/thunderevil35/article/details/80657133</link><guid>https://blog.youkuaiyun.com/thunderevil35/article/details/80657133</guid><author>thunderevil35</author><pubDate>Sun, 17 Jun 2018 14:36:05 +0800</pubDate><description><![CDATA[HTML 标准属性 和 自定义属性的区别联系]]></description><category></category></item></channel></rss>