VisualStudio.gitignore
JavaScript中模块模式的应用
模块模式是JavaScript中使用最广泛的模式,模块利用了闭包的特性
Module模式的基本特征:
- 模块化,可重用
- 封装了变量和function,和全局的namaspace不接触,松耦合
- 只暴露可用public的方法,其它私有方法全部隐藏
//自执行函数(immediately invoked function)
(function(){
}());
//这样也可以(this works too)
(function(){})();
//增加参数(add params to first)
(function(my){
}(variable));
//增加返回值(add return)
(function(my){//
return my;
}(variable));
//这样MODULE就是返回的my(give my to MODULE)
//js加载完就会运行这个函数,并且把返回值赋予MODULE
var MODULE = (function(my){//
return my;
}(variable));
//把自执行函数的参数换成返回的变量(change immediately invoked function parameter)
var MODULE = (function(my){//
return my;
}(MODULE || {}));
//你可以在其他任意地方这样定义MODULE
//所有的方法都会可以用MODULE来调用
//now you can define MODULE anywhere you like,
//all the functions inside will be extended to others
// 增加功能(add capabilities)
var MODULE = (function (my) {
//you cannot access inner variable
var variable = {};
// this is inner function, you cannot call it outside of the MODULE
function innerFun(){
console.log(variable);//you can access inner variable here
}
//this function will be exported, you can call it outside
my.someFun = function(){
//you can call inner variable and function here
console.log(variable);
innerFun();
};
return my;
}(MODULE || {}));
//MODULE || {} is the parameter passed to this MODULE,
//equals "my" inside MODULE
//you can define MODULE anywhere else
AngularJS中使用filter显示数字的千分位号
点击Result查看效果。
Data Types in JavaScript
null and undefined in javascript
> var un;
> console.log(un);
undefined
> var nu = null;
> console.log(nu);
null
> typeof un
'undefined'
> typeof nu
'object'
> un == nu
true
> un === nu
false
> Number(undefined)
NaN
> Number(null)
undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义。典型用法是:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
挑战最强大脑——来自全球的14个编码社区
史蒂夫·乔布斯说过,每个人都应该学习给电脑编写程序的技术,因为这一过程能够教你如何去思考!众所周知,编程已成为开发者生命中至关重要的一部分。很多事实表明,越来越多的人不管男女老少都将参与编程这个行业。
学习编程的渠道有很多种,比如你可以利用一些互动平台或者书籍去学习编程,无论是哪种,只要找到适合自己的就OK。俗话说,光说不练嘴把式,因此,我们还需要进行实践。
编程极富有创造性,你可以创造出许多新奇有趣的想法。很多时候,开发者在相同的问题上花费了大量时间,而忽略了创造性。笔者不能确定这是否是许多网站发起编程挑战赛的原因,但可以确定的是,这些挑战对于开发者而言是有很大帮助的。它的好处在于:
- 思考问题有新的思维方式;
- 学到一门新语言;
- 提升解决方法的能力;
- 激发大脑灵感、专注;
- 有趣!
文中搜集了14个不错的学习资源,帮助你挑战自我,领略并探索计算机领域无穷奥秘。
1.?[topcoder]
[topcoder]社区得到了数百万编码者的支持,因此你可以了解到很多挑战性的项目,基于此你还可以为自己赚去额外的报酬。你可以每天或每周参与编码挑战,该社区提供的项目极具有挑战性,对于初学者而言有一定的难度,但却值得一试。
2.?HackerEarth
HackerEarth提供了SaaS应用,能够为应试者自动评估技术和逻辑技能。此外,它还可作为人才聚集地,为公司提供智能招聘服务资源,帮助公司挑选适宜人才。
HackerEarth会频繁更新挑战项目,你可以提前几周登记注册,事先了解下项目,为挑战做好充足的准备。
3.?Coderbyte
Coderbyte旨在帮助提高开发者的编程技能,其得到了初学者和中级程序员的一致好评。该项目由Daniel Borowski?于2012年推出,现今任何开发者都可利用业余时间进行维护。
如果你遇到难题,你可以在Coderbyte上提问,该社区的用户相当活跃,你可以获得任何你想要的答案。
4.?Project Euler
Project Euler可能是全球最流行的编程挑战网站,项目推出初期就拥有几十万的用户,足以表明其影响力有多大。Project Euler致力于鼓励、挑战并且发展解题技巧,并为那些对迷人的数学世界有兴趣的人提供乐趣。
你可以通过:Wikipedia?、?Reddit?、?Stack Overflow?以及Google Code?了解更多Project Euler相关信息。
5.?Daily Programmer
如果你想了解更多关于编程和问题解答,那么Reddit Daily Programmer就是你的好去处。毋庸置疑,许多开发者都喜欢在Reddit上查看新闻、探讨话题。你的每一次创建、评论,社区成员都审阅并提交,所以你可能会获得许多意见和答案,直至满足你的需求。
6.?Codility Train
Codility Train支持多种语言,你可以预先定制或预先思考挑战项目,根据难易度进行分类,当然挑战何种程度取决于你自己的选择。
每项编程挑战最后都有详细的解释,挑战时间也有限制并不是绝对的自由。
7.?SPOJ
Sphere Online Judge?是一个由成千上万个编码挑战项目组成的社区,它几乎支持所有的编程语言,你还可以基于该社区论坛需求帮助
npm设置代理
无密码的:
$ npm config set proxy http://server:port
$ npm config set https-proxy http://server:port
有密码的
$ npm config set proxy http://username:password@server:port
$ npm config set https-proxy http://username:pawword@server:port
删除代理
npm config rm proxy
npm config rm https-proxy
使用css制作对话气泡的样式(下方小箭头)css bubble – JSFiddle
在html中使用css截短文字css truncate text – JSFiddle
用css截短文字有一个好处,就是不用考虑全角半角,文字语言等因素,比后台代码(java、.Net、php等)简单方便
举个栗子:
?





