Skip to content

Instantly share code, notes, and snippets.

View yangjunjun's full-sized avatar
🐱
Focusing

杨军军 yangjunjun

🐱
Focusing
  • undefined
  • Xian, Shaanxi, China
View GitHub Profile
@yangjunjun
yangjunjun / getRandomInt.js
Last active December 26, 2015 07:19
这段代码的本意是生成一个随机的三位数,而且这个三位数不能够同时相同,但是代码却有一个错误;正确的代码应该是把第八行代码去掉,改成第九行代码。
function getRandomInt() {
var max = 999;
var min = 100;
var result = Math.floor(Math.random() * (max - min + 1) + min)
var num_arr = (result + '').split('');
var isEqual = (num_arr[0] == num_arr[1]) ? ((num_arr[1] == num_arr[2]) ? true : false) : false;
if (isEqual) {
numRand(); //error
// result = numRand();
}
//Iterative
function factorial(num)
{
var rval=1;
for (var i = 2; i <= num; i++)
rval = rval * i;
return rval;
}
@yangjunjun
yangjunjun / lookandsay.js
Last active December 26, 2015 10:09
look and say
/**
* look and say
*
* Reference:
* 1.https://github.com/bkarak/fuzzer-fat-fingers/blob/master/src/tasks/LookAndSay/LookAndSay.js
* 2.https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
*/
function lookandsay(str) {
return str.replace(/(.)\1*/g, function(seq, p1){return seq.length.toString() + p1})
function quicksort(input) {
if(input.length === 0) return input;
var head = input[0],
tail = input.slice(1);
var less = tail.filter(function(i) {
return i < head ? true : false;
});
function quicksort(input) {
if(input.length === 0) return input;
var head = input[0],
tail = input.slice(1);
var less = tail.filter(function(i) {
return i < head ? true : false;
});
@yangjunjun
yangjunjun / gof.md
Last active December 26, 2015 11:59
设计模式

非关语言: 设计模式

设计模式并不神秘。。。程式设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模式是在解决问题的过程中,一些良好思路的经验集成,最早讲设计模式,人们总会提到Gof的著作,它最早将经典的23种模式集合在一起说明,对后期学习程式设计,尤其是对从事物件导向程式设计的人们起了莫大的影响。

后来设计模式一词被广泛的应用到各种经验集成,甚至还有反模式(AntiPattern),反模式教导您如何避开一些常犯且似是而非的程式设计思维。

这边的话将整理一些设计模式学习心得,实作的部份是使用Java,因而您会看到一些与Gof模式不同的图及实作方式,这是为了善用一些Java本身的特性,至于C++的实作方面,Gof 的书已经给了不少的例子。

在一些模式的实作上,您会发现我用了介面(interface)来取代抽象类别(Abstract class),这与原先的Gof书中的范例会不尽相同,这是因为在C++中没有介面,一个完全没有实作任何方法的抽象类别,根据当时描述的主题特性,可以的话会将之换为介面,在语义上会较符合Java语言的特性,但是您要知道的是,介面与完全没有实作任何方法的抽象类别在某些时候是可以互换的。

@yangjunjun
yangjunjun / verifyPassword.js
Created October 25, 2013 08:18
测试密码强度
/**
* 测试密码强度
*
* 1.密码长度为[6-16]位,可以包含数字、字母、特殊符号
* 2.当密码含有一种类型(数字、字母、特殊符号),且长度小于8时,强度为弱;长度大于8时强度为中;
* 3.当密码含有一种类型(数字、字母、特殊符号),且长度小于8时,强度为弱;长度大于8时强度为中;
*/
function verifyPassword(val){
val = val.trim();
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<script>
for(var i=0; i<=30; i++){
var img = document.createElement('img');
img.src= 'http://www.wsxa.com/images/weather/a_' + i +'.gif';
var singleton = function( fn ){
var result;
return function(){
return result || ( result = fn .apply( this, arguments ) );
}
}
var createMask = singleton( function(){
return document.body.appendChild( document.createElement('div') );
})
书名 javascript框架设计:像上帝一样创造世界
序章
第1节 框架与库
第2节 javascript年代划分
第3节 javascript框架分类
第4节 javascript框架的主要功能