12 Sep 2016
我们知道在Js语言中,定义了7中基本类型的数据,number、string、boolean、object、function和undefined,每一种数据类型的值都是有function构建而来,而function本身呢也是一种数据,是由Function function构建而来。这样呢就形成了语言的逻辑自洽。
这篇文章主要讨论object的数据类型,object类型的数据都是有Object function构建而来,是Js中主要的数据类型之一。
Js的object数据令人着迷的地方就是它非常的灵活易用,你可以很简单的定义一个object,然后添加property,修改property...
... ...
09 Sep 2016
网上充斥着各种关于Js的继承的文章,一看标题大约都是“Js继承的5种方式、8种办法”,当然总结得也很好,只是有些地方个人觉得有凑数的嫌疑,仔细分析似乎有些牵强附会的意思。这篇文章就通过原型的角度重新讲讲到底什么才是Js的继承,如果你对Js的原型还不是很熟悉,请移步。
一、什么情况才算是子继承了父?
继承,在现实生活中是富二代发家致富的必备手段,在我们程序语言的世界里面同样也是程序“发家致富”的手段。顾名思义,继承就是“把你的东西给我”,当然不能白给你,除非你是人家儿子,或者你认人家当干爹,总之,就是继承了之后你和被继承者之间有一定的继承关系。
这种继承关系在Js语言中怎么判断?怎么才...
... ...
08 Sep 2016
众所周知,Js语言是随着Web时代的兴起而产生的,最开始是专门为了浏览器端而设计,现在随着Node的兴起,Js语言开始在服务器端大展拳脚。Js设计的时候Java面向对象的思想正风靡整个互联网,以至于Js的名字都要起的感觉和Java有半毛钱关系似得,在这种面向对象的思想的影响下,Js也被设计成一门面向对象的语言,乃至更加“面向对象”。
一、在Js中,一切都是值
在程序语言的世界里,什么是值?值就是数据。
程序语言都可以被看作是数据加结构的组合,结构是逻辑、是运算、是程序的框架、是不变的部分;数据是值、是变化的部分。
当然很多时候结构和数据是相对的。
举例说明,在Java中,C...
... ...
07 Sep 2016
在展开Js的prototype讨论之前,一定要首先弄清楚的几件事情。
一、 prototype是用来干嘛的?
我们知道Js最初设计是为了在浏览器端处理一些简单的事情,作者估计也没想把这门语言搞得太复杂,虽然当时面向对象的潮流很是火爆,作者还是没有搞得像Java一样复杂的面向对象。要想搞清楚prototype是搞啥的,最简单的方式是假设如果没有prototype。
let o1 = {
name: 'o1',
say: function() {
console.log(this.name);
}
};
let o2 = {
na...
... ...
29 Aug 2016
关于JavaScript Closure其实就一句话可以解释:
在一个函数f1内部返回一个函数f2,且f2函数体内使用了f1函数体内定义的变量。
一、在一个函数内部返回另一个函数的必要性探讨
在Js的世界里,因为function是第一对象,所以在一个function内部可以很随意的返回另外一个function:
function f1() {
var i = 0;
console.log('execute f1: ' + i);
return function() {
var j = 0;
console.log('execute...
... ...
26 Aug 2016
关于Js callback function其实没有什么好说的,但是看到网上大量文章还在乐此不疲的讨论,关键很多文章都没有说到本质,有的甚至把回调和异步什么的强行扯上关系,让本来就不理解回调的懵逼少年情何以堪。
一、你可以这样理解回调
一言不合,先上一段Java代码:
public void method(Obejct obj) {
String objString = obj.toString();
}
我要告诉你这就是回调的本质,我想要么你会正态懵逼,要么你会把我打得正态懵逼。假设你已经认同了上面的代码就是回调,那么你不难给回调下个定义:
“回调就是在一个方法...
... ...
23 Aug 2016
一、 ES6之前,函数是唯一提供局部变量作用域的地方
在ES6之前,Js不支持块级作用域,这意味着在if语句、switch语句、for循环、while循环中无法支持块级作用域。
function outer() {
var o = 'outer';
console.log(o); // outer
if (true) {
var _if = 'inner if';
}
console.log(_if); // inner if
}
outer();
二、 ES6之后,可用let关键字提供块级变量作用域
ES6之后,可以通过let...
... ...
15 Aug 2016
关于什么是Jekyll以及Jekyll是干嘛用的,官网http://jekyllcn.com/有非常详尽的介绍。
不管是搭建静态博客还是希望在本地启动一个Jekyll的服务方便在本地预览自己博客。都需要首先安装
Jekyll。
一、你可能会遇到的坑
由于国内的网络原因,你的安装往往不会顺风顺水,这就是我记录下这篇博客的原因。首先按照官网的文档尝试安装,执行:
sudo gem install jekyll
当你输入密码,然后怀着紧张和不安的心情等待几秒钟后,眼前的一切对你来说是崩溃的。
ERROR: Could not find a valid gem 'jekyll' (&g...
... ...
13 Apr 2016
上一节我们给出了频繁项集的生成过程以及策略。简单的可以分为三个步骤:
由k-项集根据最小支持度过滤出k-频繁项集。
由k-频繁项集生成(k+1)-项集,可以称为候选项集。
然后重复第1步。
这集主要讨论从k-候选集生成k-频繁项集的过程。
从k-候选集生成k-频繁项集的过程其实很简单,就是计算该k-候选项集的支持度是否大于等于最小支持度minsup。
所以,最重要的一件事情就是计算k-候选项集的支持度。
sup = (X∪Y)∙count/n, 其中n是总的事务,(X∪Y)∙count是指所有的事务中包含(X∪Y)项集的数量。
首先定义项的对象,为了方便,所有的代...
... ...
08 Apr 2016
一、频繁项集及先验原理
通过数据挖掘-关联规则-概念,首先我们知道项以及项集的概念,其次我们也知道了支持度的概念。那么频繁项集的概念
就不难给出:
频繁项集:支持度大于等于指定的最小支持度的项集,称为频繁项集。其中项集的大小称为基数。
基数为k的项集我们称为k-项集,基数为k的频繁项集称为k-频繁项集。
同样给出我们的栗子数据:
周几下午2点
一起在操场玩耍
周一
{小刚,小红}
周二
{小红,小明,小杨,小刘}
...
... ...