- 博客(44)
- 资源 (32)
- 收藏
- 关注
原创 全国市级城市拼音-中文对照表(json格式)
全国市级城市拼音-中文对照表(json格式){“Beijing”: “北京”,“Tianjin”: “天津”,“Shanghai”: “上海”,“Chongqing”: “重庆”,“Yinchuan”: “银川”,“Shizuishan”: “石嘴山”,“Wuzhong”: “吴忠”,“Guyuan”: “固原”,“Zhongwei”: “中卫”,“Wulumuqi”: “乌鲁木齐”,“Kelamayi”: “克拉玛依”,“Lasa”: “拉萨”,“Huhehaote”: “呼和
2021-07-29 10:11:34 3396
原创 ES6与ES5差别简述
ES6与ES5差别1、ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { var a = 1; let b = 1; } a;//1 b;//undefinedlet不像var存在变量提升,即变量一定要声明之后才能使用。2、块级作用域ES5只有全局作用域和函数作用域,没有块...
2018-03-10 15:13:24 1411
原创 浅谈MVC、MVP、MVVM架构模式的区别和联系
MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。一、MVC(Model-View-Controller)MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。MVC使用非常广泛,比如J...
2018-03-07 13:59:47 855
原创 JS实现数组去重的六种方法
方法一:双层循环,外层循环元素,内层循环时比较值如果有相同的值则跳过,不相同则push进数组Array.prototype.distinct =function(){ var arr = this; var result = []; len = arr.length; for(var i = 0; i < len; i++){ for(var j = i + 1; j < ...
2018-03-07 12:40:16 974 2
原创 javascript中function前面加!,+,-,~的含义
我们都知道,函数的声明方式有这两种function fnA(){alert('msg');}//声明式定义函数var fnB = function(){alert('msg');}//函数赋值表达式定义函数函数的调用方式通常是FunctionName()但是,如果我们尝试为一个“定义函数”末尾加上(),解析器是无法理解的。function msg(){ alert('message');...
2018-03-03 19:37:37 5809
原创 一个简单的爬虫实例
1. 概述本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片。下载图片的步骤如下:获取网页html文本内容;分析html中图片的html标签特征,用正则解析出所有的图片url链接列表;根据图片的url链接列表将图片下载到本地文件夹中。2. urllib+re实现#!/usr/bin/python# coding:utf-8# 实现一个简单的爬虫,爬取百度贴吧图
2018-02-03 15:12:06 1266
原创 Windows下的Jupyter Notebook 安装与自定义启动
安装jupyter Notebook之前先要安装python,安装python方法网上有很多,很简单,这里就不赘述了。这是我自定义的Python 的安装目录 (D:\SoftWare\Python\Python36\Scripts)1、Jupyter Notebook和pip 为了更加方便地写Python代码,还需要安装Jupyter notebook。 利用pip安装
2018-02-03 15:01:46 742
原创 解决pycharm无法导入本地包的问题(Unresolved reference 'XXX')
在用scrapy(python2.7)写爬虫的时候from tutorail.items import DmozItem这一行始终提示没有找到包,实际上已经在本地下载了。 也就是出现 Unresolved reference 'tutorial' 的问题。 当然,其实不只是爬虫,如果你初次导入包是应该也可能会遇见这个问题! 解决办法:1.清除缓存并重启
2018-02-03 14:56:45 2004
原创 Win系统下python3和python2同时安装并解决pip共存问题
特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似。 使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下面提供详细教程一份。1、下载python3和python2进入python官网,链接https://www.python.org/选择Downloads--->Windows,
2018-02-03 14:52:52 634
原创 浅谈navigator对象
(1) navigator.userAgentnavigator.userAgent属性返回浏览器的User-Agent字符串,标示浏览器的厂商和版本信息。下面是Chrome浏览器的userAgent。navigator.userAgent// "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko
2018-01-30 21:03:59 1272
原创 浅谈window对象
在浏览器中,window对象(注意,w为小写)指当前的浏览器窗口。它也是所有对象的顶层对象。“顶层对象”指的是最高一层的对象,所有其他对象都是它的下属。JavaScript规定,浏览器环境的所有全局变量,都是window对象的属性。var a = 1;window.a // 1上面代码中,变量a是一个全局变量,但是实质上它是window对象的属性。声明一个全局变量,就是
2018-01-30 20:26:05 823
原创 单线程模型
什么是单线程模型?单线程模型指的是,JavaScript只在一个线程上运行。也就是说,JavaScript同时只能执行一个任务,其他任务都必须在后面排队等待。注意,JavaScript只在一个线程上运行,不代表JavaScript引擎只有一个线程。事实上,JavaScript引擎有多个线程,单个脚本只能在一个线程上运行,其他线程都是在后台配合。JavaScript之所以采用单线程,而不
2018-01-02 23:04:10 1983
原创 JAvaScript中apply()和call()的区别
初学JavaScript时经常混淆apply()和call()的区别,现在就它们的做一下简单的描述。相同点:apply()和call()两个方法产生的作用是一样的,都用来改变当前函数调用的对象。不同点:apply()和call()方法调用的参数不同。下面细致分析下apply()和call()使用区别:call()的使用call([thisObj[,arg1[, arg2[, [,.argN]]]]
2018-01-02 16:04:45 1005
原创 外观模式
外观模式概念: 外观模式是很常见。其实它就是通过编写一个单独的函数,来简化对一个或多个更大型的,可能更为复杂的函数的访问。也就是说可以视外观模式为一种简化某些内容的手段。 说白了,外观模式就是一个函数,封装了复杂的操作。代码实现: 比如一个跨浏览器的ajax调用function ajaxCall(type,url,callback,data){ // 根据当前浏览
2017-12-02 16:51:06 827
原创 代理模式
代理模式概念: 代理模式的中文含义就是帮别人做事,javascript的解释为:把对一个对象的访问, 交给另一个代理对象来操作. 代码实现: 比如我们公司的补打卡是最后是要交给大boss来审批的,但是公司那么多人,每天都那么多补打卡,那大boss岂不是被这些琐事累死。所以大boss下会有一个助理,来帮忙做这个审批,最后再将每个月的补打卡统一交给大boss看看就行。//
2017-12-02 16:49:19 984
原创 模板模式
模板模式概念: 定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 通俗的讲,就是将一些公共方法封装到父类,子类可以继承这个父类,并且可以在子类中重写父类的方法,从而实现自己的业务逻辑。代码实现:比如前端面试,基本包括笔试,技术面试,领导面试,HR面试等,但是每个公司的笔试题,技术面可能不一样,也可能一样,
2017-12-01 09:26:18 2461
原创 策略模式
策略模式概念: 策略模式指的是定义一些列的算法,把他们一个个封装起来,目的就是将算法的使用与算法的实现分离开来。说白了就是以前要很多判断的写法,现在把判断里面的内容抽离开来,变成一个个小的个体。代码实现:代码情景为超市促销,vip为5折,老客户3折,普通顾客没折,计算最后需要支付的金额。没有使用策略模式的情况:function Price(personType, price)
2017-12-01 09:23:53 4313
原创 观察者模式(发布订阅模式)
观察者模式概念: 定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新,也被称为是发布订阅模式。它需要一种高级的抽象策略,以便订阅者能够彼此独立地发生改变,而发行方能够接受任何有消费意向的订阅者。应用场景: 这个模式要先说应用场景,比较好理解。 打一个离我们比较近的一个场景,博客园里面有一个订阅的按钮(貌似有bu
2017-12-01 09:20:46 1866
原创 单例模式
单例模式概念: 单例模式定义了一个对象的创建过程,此对象只有一个单独的实例,并提供一个访问它的全局访问点。也可以说单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。代码实现: 单例的实现有很多种,下面只介绍其中的一种,使用闭包方式来实现单例,代码如下:var single =
2017-12-01 09:16:40 1071
原创 单体模式和工厂模式
单体模式概念: 单体是一个用来划分命名空间并将一批相关的属性和方法组织在一起的对象,如果他可以被实例化,那么他只能被实例化一次。其特点有以下三点: (1)可以来划分命名空间,从而清除全局变量所带来的危险。 (2)利用分支技术来来封装浏览器之间的差异。 (3)可以把代码组织的更为一体,便于阅读和维护。js代
2017-11-30 23:21:58 1451
原创 选择排序—简单选择排序
简单选择排序是一种选择排序。选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。简单排序处理流程:(1)从待排序序列中,找到关键字最小的元素;(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;(3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束
2017-11-15 14:45:53 1004 2
原创 插入排序—希尔排序
希尔排序又叫缩小增量排序 ,希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。基本操作如下: 第一步:选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1; 第二步
2017-11-12 18:57:06 862 1
原创 插入排序—直接插入排序
基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。 要点:设立哨兵,作为临时存储和判断数
2017-11-12 15:45:03 982 1
原创 浅谈KMP算法
1.定义 Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。 kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现
2017-11-12 15:15:58 674
原创 纯CSS画基本图形(圆形、三角形、多边形、爱心、八卦)
1、正方形 CSS代码如下:#square{ width: 100px; height: 100px; background: red;}最终效果: 2、长方形 CSS代码如下:#rectangle { width: 200px; height: 100px; background: red;}最终效果: 3、圆形 CSS代码如下:#ci
2017-11-12 14:37:03 2078 3
原创 牛客网前端编程题库及答案汇总(中)
1.完全等同 题目描述 判断 val1 和 val2 是否完全等同 初始代码: AC代码: 解释:一般使用双等来判断(==), 如果还需要类型相同那么就用三等(===)。2.计时器 题目描述 实现一个打点计时器,要求 1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1 2、返回的对象中需要包含一个
2017-11-01 18:57:49 3557
转载 如何轻松愉快地理解条件随机场(CRF)?
转自:http://www.jianshu.com/p/55755fc649b1 理解条件随机场最好的办法就是用一个现实的例子来说明它。但是目前中文的条件随机场文章鲜有这样干的,可能写文章的人都是大牛,不屑于举例子吧。于是乎,我翻译了这篇文章。希望对其他伙伴有所帮助。 原文在这里[http://blog.echen.me/2012/01/03/introduction-to-conditiona
2017-10-23 15:24:00 29652 8
转载 机器学习资源积累
转自【资源】机器学习资源积累(积累中…) | 学步园+http://www.xuebuyuan.com/2200605.html Andrew Moore,邓侃在CMU的老板,机器学习和数据挖掘专家,写了很多关于数据挖掘和机器学习的PPT和PDF文档,浅显易懂,推荐阅读 http://www.autonlab.org/tutorials/Good Freely Available Textbo
2017-10-23 14:21:28 1927 1
原创 $(window).height() 和 $(document).height()的区别
先上代码:function b(){ h = $(window).height(); t = $(document).scrollTop(); if(t > h){ $('#gotop').show(); }else{ $('#gotop').hide(); }}$(document).ready(function(e) {
2017-10-22 00:38:47 1760 1
原创 浅谈A*算法
搜索区域 假设有人想从A点移动到一墙之隔的B点,如下图,绿色的是起点A,红色是终点B,蓝色方块是中间的墙。 你首先注意到,搜索区域被我们划分成了方形网格。像这样,简化搜索区域,是寻路的第一步。这一方法把搜索区域简化成了一个二维数组。数组的每一个元素是网格的一个方块,方块被标记为可通过的和不可通过的。路径被描述为从A到B我们经过的方块的集合。一旦路径被找到,我们的人就从一个方格的中心走向另一个,直
2017-10-21 14:39:47 1227
原创 前端JS小坑集锦
我在做一些JS项目的时候经常遇到一些小坑,现在决定将它们记录下来,也供童鞋们参考和指正。 1.$(...).on is not a function 解决方案。 解:出现这个错误的原因是引入的jQuery的插件版本过低,此版本的jQuery中不包含on()方法。解决办法是:可以引入较高的版本 如 jquery-1.8.3.min.js。(相关知识:之前的使用的bind()、delegate()
2017-10-19 23:31:32 1280
原创 浅谈常见的target=_blank
常见的html页面经常出现target=”_blank”,尤其发生在为超链接的情况下,所以专门整理了下相关的知识点: 首先target有几个可选值: 1. _blank 链接在新页面打开 2. _parent 链接在父页面打开 3. _self 链接在当前页面打开(默认为_self) 4. _top 链接在最上级页面打开 (1)HTML元素<a href=
2017-10-11 17:18:41 10695
原创 javascript方法中new方式和字面量方式的区别
JavaScript中并没有类的概念,正如其他动态语言一样,JavaScript中的所有元素均为对象。我们可以把JavaScript中的对象看做是其他语言中的HashTable,即键-值对(key-value pair)哈希表。 举个简单的例子:在创建对象时向其添加属性和方法: var dog = { name: "Max", getName = function
2017-10-04 10:22:57 4482
原创 D3.js和highcharts,echarts性能对比
前端做数据可视化开发时,经常会用到D3.js、highcharts、echarts这些可视化插件,我就这三者在性能上的区别做一个简单的介绍: (1).Highcharts和echarts是一类东西,但跟d3.js维度不同。假如前面两个能解决你的需求,那么就可以先不考虑d3。英语好highcharts,英语不好选echarts。当然最好要先评估一下它们对浏览器的兼容性,免得写完了发现用户那运行不了。
2017-09-30 16:28:53 26655
原创 vis.js介绍
Vis.js是一个动态的、基于浏览器的可视化库,可处理大量的动态数据并能与这些数据进行交互操作。该项目包含 DataSet、Timeline, 和 Graph(2d和3d)。 Vis.js是由Almende B.V公司开发的开源项目,基于Canvas绘制web可视化图形图表,简单易用,功能强大。 下面是vis.js的模块: 数据集(DataSet): 灵活的键/值对,可添加、更
2017-09-30 16:13:15 7181
原创 JavaScript强制类型转换和隐式类型转换
在JavaScript中声明变量不需指定类型, 对变量赋值也没有类型检查,同时JavaScript允许隐式类型转换。这些特征说明JavaScript属于弱类型的语言。 (1).转换为字符串 转换为字符串是应用程序中的常见操作,javascript提供了toString方法。多数的JavaScript宿主环境(比如Node.js和Chrome)都提供了全局函数toString; 与此同时Objec
2017-09-29 20:15:25 2886
原创 JavaScript中SetInterval与setTimeout使用区别
在使用setTimeout和setInterval的时候,可以发现它们语法相同。都有两个参数。第一个参数是将要执行的代码字符串,第二个参数是以毫秒为单位的时间间隔。过了这个时间间隔,就会执行那段代码。 举个例子来看它们的区别: (1)window.setTimeout(“function”,time);这条语句设置了一个超时对象,只执行一次,无周期 (2)window.setInte
2017-09-24 22:14:18 2819
原创 最新csdn有奖任务答案
最新csdn有奖任务答案 1. 下载intel白皮书,轻松获得5个C币 答案为:4 2.加入开发技术专区,可获得3个 答案:申请信息提交成功 3.关注CSDN资讯公众号,获得5个下载积分 答案:CSDN 4.关注程序人生公众号,获得5个下载积分 答案:机智 5.关注AI公众号,获得3个下载积分 答案:智能 6.扫码加入普元EAWorld公众号,轻松赢取3个C币 答案:clou
2017-09-24 10:56:05 9314 2
原创 javascript自执行匿名函数(function(){})()
匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下面是一种最常用的例子: // 传统匿名函数 (function() { alert('hello'); })();是什么促使它自动执行的?我们在传统写法上去掉小括号,并在前面加上运算符 ~,!,+,-,效果都是一样的,可以发现这些写法的共同点是运算符,其实传统方式的小括
2017-09-14 10:28:58 5404
原创 js中数组方法push()、shift()与pop()、unshift()的区别
1、push()是用来在数组末端添加项,shift()在移除数组的第一个项。2、pop()在数组末端移除项,unshift()在数组前端添加项。3、push(),unshift()在推入多个项时,各个项之间的顺序不变。4、push(),unshift()将数组的长度+1并且返回的是数组的长度;pop(),shift()将数组length-1并返回的是移除的项
2017-09-08 19:42:40 3604 1
2014斯坦福大学机器学习mkv视频教程对应的PPT文件
2017-10-21
2014斯坦福大学机器学习mkv视频对应的PDF文件
2017-10-21
超绚丽的HTML5地图分布动画
2017-10-20
HTML5CSS3图片左右切换弹性动画
2017-10-20
LDA学习必备资料,详细科普LDA中所用到的数学知识。
2017-09-21
Editplus3.60.870
2017-09-14
李航 统计学习方法
2017-08-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人