<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[DCX_abc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/DCX_abc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; DCX_abc]]></copyright><item><title><![CDATA[全国市级城市拼音-中文对照表（json格式）]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/119204909</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/119204909</guid><author>DCX_abc</author><pubDate>Thu, 29 Jul 2021 10:11:34 +0800</pubDate><description><![CDATA[全国市级城市拼音-中文对照表（json格式）
{
“Beijing”: “北京”,
“Tianjin”: “天津”,
“Shanghai”: “上海”,
“Chongqing”: “重庆”,
“Yinchuan”: “银川”,
“Shizuishan”: “石嘴山”,
“Wuzhong”: “吴忠”,
“Guyuan”: “固原”,
“Zhongwei”: “中卫”,
“Wulumuqi”: “乌鲁木齐”,
“Kelamayi”: “克拉玛依”,
“Lasa”: “拉萨”,
“Huhehaote”: “呼和]]></description><category></category></item><item><title><![CDATA[ES6与ES5差别简述]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79508111</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79508111</guid><author>DCX_abc</author><pubDate>Sat, 10 Mar 2018 15:13:24 +0800</pubDate><description><![CDATA[ES6与ES5差别1、ES6新增了let命令，用来声明变量。它的用法类似于var，但是所声明的变量，只在let命令所在的代码块内有效。   {
        var a = 1;
        let b = 1;
    }
    a;//1
    b;//undefinedlet不像var存在变量提升，即变量一定要声明之后才能使用。2、块级作用域ES5只有全局作用域和函数作用域，没有块...]]></description><category></category></item><item><title><![CDATA[浅谈MVC、MVP、MVVM架构模式的区别和联系]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79470130</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79470130</guid><author>DCX_abc</author><pubDate>Wed, 07 Mar 2018 13:59:47 +0800</pubDate><description><![CDATA[MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的，目前作为主流的几种架构模式而被广泛使用。一、MVC（Model-View-Controller）MVC是比较直观的架构模式，用户操作-&amp;gt;View（负责接收用户的输入操作）-&amp;gt;Controller（业务逻辑处理）-&amp;gt;Model（数据持久化）-&amp;gt;View（将结果反馈给View）。MVC使用非常广泛，比如J...]]></description><category></category></item><item><title><![CDATA[JS实现数组去重的六种方法]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79469384</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79469384</guid><author>DCX_abc</author><pubDate>Wed, 07 Mar 2018 12:40:16 +0800</pubDate><description><![CDATA[方法一：双层循环，外层循环元素，内层循环时比较值如果有相同的值则跳过，不相同则push进数组Array.prototype.distinct =function(){
 var arr = this;
 var result = [];
 len = arr.length;
 for(var i = 0; i &amp;lt; len; i++){
  for(var j = i + 1; j &amp;lt; ...]]></description><category></category></item><item><title><![CDATA[javascript中function前面加!,+,-,~的含义]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79432337</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79432337</guid><author>DCX_abc</author><pubDate>Sat, 03 Mar 2018 19:37:37 +0800</pubDate><description><![CDATA[我们都知道，函数的声明方式有这两种function fnA(){alert('msg');}//声明式定义函数
var fnB = function(){alert('msg');}//函数赋值表达式定义函数

函数的调用方式通常是FunctionName()但是，如果我们尝试为一个“定义函数”末尾加上()，解析器是无法理解的。function msg(){
  alert('message');...]]></description><category></category></item><item><title><![CDATA[一个简单的爬虫实例]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79247085</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79247085</guid><author>DCX_abc</author><pubDate>Sat, 03 Feb 2018 15:12:06 +0800</pubDate><description><![CDATA[1. 概述
本文主要实现一个简单的爬虫，目的是从一个百度贴吧页面下载图片。下载图片的步骤如下：

获取网页html文本内容；分析html中图片的html标签特征，用正则解析出所有的图片url链接列表；根据图片的url链接列表将图片下载到本地文件夹中。
2. urllib+re实现

#!/usr/bin/python
# coding:utf-8
# 实现一个简单的爬虫，爬取百度贴吧图]]></description><category></category></item><item><title><![CDATA[Windows下的Jupyter Notebook 安装与自定义启动]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79247034</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79247034</guid><author>DCX_abc</author><pubDate>Sat, 03 Feb 2018 15:01:46 +0800</pubDate><description><![CDATA[安装jupyter Notebook之前先要安装python，安装python方法网上有很多，很简单，这里就不赘述了。

这是我自定义的Python 的安装目录 （D:\SoftWare\Python\Python36\Scripts）
1、Jupyter Notebook和pip
　　为了更加方便地写Python代码，还需要安装Jupyter notebook。
 利用pip安装 
]]></description><category></category></item><item><title><![CDATA[解决pycharm无法导入本地包的问题（Unresolved reference 'XXX'）]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79246993</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79246993</guid><author>DCX_abc</author><pubDate>Sat, 03 Feb 2018 14:56:45 +0800</pubDate><description><![CDATA[在用scrapy（python2.7）写爬虫的时候
from tutorail.items import DmozItem

这一行始终提示没有找到包，实际上已经在本地下载了。

 
也就是出现 Unresolved reference 'tutorial' 的问题。
 
当然，其实不只是爬虫，如果你初次导入包是应该也可能会遇见这个问题！
 
解决办法：
1.清除缓存并重启]]></description><category></category></item><item><title><![CDATA[Win系统下python3和python2同时安装并解决pip共存问题]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79246958</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79246958</guid><author>DCX_abc</author><pubDate>Sat, 03 Feb 2018 14:52:52 +0800</pubDate><description><![CDATA[特别说明，本文是在Windows64位系统下进行的，32位系统请下载相应版本的安装包，安装方法类似。
 
使用python开发，环境有Python2和 python3 两种，有时候需要两种环境切换使用，下面提供详细教程一份。
1、下载python3和python2

进入python官网，链接https://www.python.org/
选择Downloads--->Windows，]]></description><category></category></item><item><title><![CDATA[浅谈navigator对象]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79210591</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79210591</guid><author>DCX_abc</author><pubDate>Tue, 30 Jan 2018 21:03:59 +0800</pubDate><description><![CDATA[(1) navigator.userAgent
navigator.userAgent属性返回浏览器的User-Agent字符串，标示浏览器的厂商和版本信息。
下面是Chrome浏览器的userAgent。
navigator.userAgent
// "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko]]></description><category></category></item><item><title><![CDATA[浅谈window对象]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/79210146</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/79210146</guid><author>DCX_abc</author><pubDate>Tue, 30 Jan 2018 20:26:05 +0800</pubDate><description><![CDATA[在浏览器中，window对象（注意，w为小写）指当前的浏览器窗口。它也是所有对象的顶层对象。
“顶层对象”指的是最高一层的对象，所有其他对象都是它的下属。JavaScript规定，浏览器环境的所有全局变量，都是window对象的属性。

var a = 1;
window.a // 1



上面代码中，变量a是一个全局变量，但是实质上它是window对象的属性。声明一个全局变量，就是]]></description><category></category></item><item><title><![CDATA[单线程模型]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/78956817</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/78956817</guid><author>DCX_abc</author><pubDate>Tue, 02 Jan 2018 23:04:10 +0800</pubDate><description><![CDATA[什么是单线程模型？
单线程模型指的是，JavaScript只在一个线程上运行。也就是说，JavaScript同时只能执行一个任务，其他任务都必须在后面排队等待。
注意，JavaScript只在一个线程上运行，不代表JavaScript引擎只有一个线程。事实上，JavaScript引擎有多个线程，单个脚本只能在一个线程上运行，其他线程都是在后台配合。
JavaScript之所以采用单线程，而不]]></description><category></category></item><item><title><![CDATA[JAvaScript中apply()和call()的区别]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/78952517</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/78952517</guid><author>DCX_abc</author><pubDate>Tue, 02 Jan 2018 16:04:45 +0800</pubDate><description><![CDATA[初学JavaScript时经常混淆apply()和call()的区别，现在就它们的做一下简单的描述。相同点：apply()和call()两个方法产生的作用是一样的，都用来改变当前函数调用的对象。不同点：apply()和call()方法调用的参数不同。下面细致分析下apply()和call()使用区别：call()的使用call([thisObj[,arg1[, arg2[, [,.argN]]]]]]></description><category></category></item><item><title><![CDATA[外观模式]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/78696830</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/78696830</guid><author>DCX_abc</author><pubDate>Sat, 02 Dec 2017 16:51:06 +0800</pubDate><description><![CDATA[外观模式概念：
　　外观模式是很常见。其实它就是通过编写一个单独的函数，来简化对一个或多个更大型的，可能更为复杂的函数的访问。也就是说可以视外观模式为一种简化某些内容的手段。
　　说白了，外观模式就是一个函数，封装了复杂的操作。
代码实现：
　　比如一个跨浏览器的ajax调用
function ajaxCall(type,url,callback,data){
    // 根据当前浏览]]></description><category></category></item><item><title><![CDATA[代理模式]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/78696801</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/78696801</guid><author>DCX_abc</author><pubDate>Sat, 02 Dec 2017 16:49:19 +0800</pubDate><description><![CDATA[代理模式概念：
　　代理模式的中文含义就是帮别人做事，javascript的解释为：把对一个对象的访问, 交给另一个代理对象来操作.
 
代码实现：
　比如我们公司的补打卡是最后是要交给大boss来审批的，但是公司那么多人，每天都那么多补打卡，那大boss岂不是被这些琐事累死。所以大boss下会有一个助理，来帮
忙做这个审批，最后再将每个月的补打卡统一交给大boss看看就行。

//]]></description><category></category></item><item><title><![CDATA[模板模式]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/78683206</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/78683206</guid><author>DCX_abc</author><pubDate>Fri, 01 Dec 2017 09:26:18 +0800</pubDate><description><![CDATA[模板模式概念：
 定义了一个操作中的算法的骨架，而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
 通俗的讲，就是将一些公共方法封装到父类，子类可以继承这个父类，并且可以在子类中重写父类的方法，从而实现自己的业务逻辑。
代码实现：
比如前端面试，基本包括笔试，技术面试，领导面试，HR面试等，但是每个公司的笔试题，技术面可能不一样，也可能一样，]]></description><category></category></item><item><title><![CDATA[策略模式]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/78683175</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/78683175</guid><author>DCX_abc</author><pubDate>Fri, 01 Dec 2017 09:23:53 +0800</pubDate><description><![CDATA[策略模式概念：
 策略模式指的是定义一些列的算法，把他们一个个封装起来，目的就是将算法的使用与算法的实现分离开来。说白了就是以前要很多判断的写法，现在把判断里面的内容抽离开来，变成一个个小的个体。

代码实现：
代码情景为超市促销，vip为5折，老客户3折，普通顾客没折，计算最后需要支付的金额。
没有使用策略模式的情况：
function Price(personType, price)]]></description><category></category></item><item><title><![CDATA[观察者模式（发布订阅模式）]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/78683144</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/78683144</guid><author>DCX_abc</author><pubDate>Fri, 01 Dec 2017 09:20:46 +0800</pubDate><description><![CDATA[观察者模式概念：
　　定义对象间的一种一对多的依赖关系，以便当一个对象的状态发生改变时，所有依赖于它的对象都得到通知并自动刷新，也被称为是发布订阅模式。
它需要一种高级的抽象策略，以便订阅者能够彼此独立地发生改变，而发行方能够接受任何有消费意向的订阅者。

应用场景：　　
　　这个模式要先说应用场景，比较好理解。
　　打一个离我们比较近的一个场景，博客园里面有一个订阅的按钮（貌似有bu]]></description><category></category></item><item><title><![CDATA[单例模式]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/78683125</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/78683125</guid><author>DCX_abc</author><pubDate>Fri, 01 Dec 2017 09:16:40 +0800</pubDate><description><![CDATA[单例模式概念：
　　单例模式定义了一个对象的创建过程，此对象只有一个单独的实例，并提供一个访问它的全局访问点。也可以说单例就是保证一个类只有一个实例，实现的方法一般是先判断实例存在与否，如果存在直接返回，如果不存在就创建了再返回，这就确保了一个类只有一个实例对象。

代码实现：
　   单例的实现有很多种，下面只介绍其中的一种，使用闭包方式来实现单例，代码如下：
var single =]]></description><category></category></item><item><title><![CDATA[单体模式和工厂模式]]></title><link>https://blog.youkuaiyun.com/DCX_abc/article/details/78682229</link><guid>https://blog.youkuaiyun.com/DCX_abc/article/details/78682229</guid><author>DCX_abc</author><pubDate>Thu, 30 Nov 2017 23:21:58 +0800</pubDate><description><![CDATA[单体模式概念：
　　单体是一个用来划分命名空间并将一批相关的属性和方法组织在一起的对象，如果他可以被实例化，那么他只能被实例化一次。
其特点有以下三点：　

          (1)可以来划分命名空间，从而清除全局变量所带来的危险。

          (2)利用分支技术来来封装浏览器之间的差异。

          (3)可以把代码组织的更为一体，便于阅读和维护。
js代]]></description><category></category></item></channel></rss>