文章列表
1. 给定一个字符串,判断其是否超长,其中的非英语系字符长度作为英语系字符的两倍来看待,如汉语的7个字,在这里要作为14字符长度来对待。
function isLongerThan(str, limit){
var length = str.length,
asciiCount;
if(length > limit) return true;
// 计算字符串中ASCii码的个数
asciiCount = (str.match(/[\u0001-\u007f]+/g) || []).join("").length;
...
function myNew(constructor) {
var obj = {
__proto__: constructor.prototype
};
constructor.apply(obj, Array.prototype.slice.call(arguments, 1));
return obj;
}
function MyTest(i) {
this.count = i;
}
var obj1 = myNew(MyTest, 0);
console.log(o ...
/*
* This is a test to check the performance of different Duff's device and normal loop
*/
var myArray = new Array(1000033);
var myArray1 = new Array(1000033);
var myArray2 = new Array(1000033);
// Jeff Greenberg's implementation of Duff's device
function jeffDuff(){
var iterations = Mat ...
如下测试代码所展示, arguments 与 方法参数 的对应变化行为,没有任何javascript的语法定义可遵循,你无法通过参数按值传递或其他基础语言规则推导出该行为。
但是利用arguments,却可以实现很多有用的功能,具体例子可以参考MDN上关于该关键字的说明。
!function(a, b, c, d, e) {
a = 4;
console.log("After set a = 4, arguments[0] is", arguments[0]);
a = undefined;
console.log(&quo ...
1. 需求变更时,从根本上解决问题与采用取巧的方式规避问题相比,短期来看,也许需要花费更多时间与精力。 但从长期讲,取巧的方式难于适应变化,需求的稍微变动可能就需要花费更多的精力,以及牺牲代码的可读性。
2. 方法的名字应该精确的表达方法所做的事情,它应该是方法最好的注释。 方法应尽量简单,不应负责过多的事情,方法过于复杂,可维护性就会降低,难以扩改或修改。另外,还需要考虑方法的原子性及不用方法之间是否有关联,如果一个方法的调用必然跟着另一个方法的调用,那么就要考虑将他们合并,以免产生因不一致调用而导致的状态混乱。
3. 任何规则,最佳实践等都不是一成不变的。核心是如何灵活的应用,而不是盲目 ...
apache web server 处理http post request 时, 并不会等待http请求全部传输完毕,当其接收到request消息头时,便将请求交给子进程来处理了
使用 SecureCRT连接solaris系统时,vim死活不能彩色显示,网上一顿狂搜,在此把解决办法纪录下来:设置系统变量 set TERM=sun-color,关于SecureCRT的终端模拟器配置网上搜索就能知道,刚试验了下ANSI和xterm都可以
最近在根据界面原型编写实现代码,在做的过程中碰到一些问题,例如一个选择城市的下拉列表,只是简单的列出了几个城市名,并没有真正的城市范围定义,在根据这编写实现代码时,就不知道该下拉列表的数据究竟应该从哪里获取,数据范围是什么。
所以,我觉得界面原型除了给用户直接的使用体验外,还需要能清晰的定义出所有数据,这样才能指导开发。
上几天同事的电脑碰到这样的问题:他的电脑只能搜到别人家的无线,但就是搜不到自己家的,而用别人的电脑却可以搜索到这个无线,这其实是个比较简单的问题,但在网上搜了很久也没有能说清楚的,最后在一片文章里搜到了解决办法,在这里记录下来,希望能给人方便:解决办法就是登陆无线路由(在用网线连接路由器后,在浏览器地址栏敲入192.168.1.1或192.168.0.1,也就是你无线路由的内网ip),进入后找到无线路由的频段设置选项,将频段设置为1-11之间的任意值,然后保存重启路由,应该就可以了。该问题的原因其实就是某些无线网卡只能搜索频段1-11之间的无线信号,当路由设置了自动选择频段,路由器有可能使用比1 ...
在c# 创建的动态链接库中调用webservice时,生成的动态链接库在执行时,总是找不到对应名称的.dll.config配置文件,原因在于动态链接库执行时是被其他应用加载,这时默认的配置来自主应用的对应配置文件,解决方法如 链接 http://developer.51cto.com/art/200908/143270.htm所示
既有使用添加服务引用,改为添加web引用
有一条很简单的规则能够描述从较窄的整型转换成较宽的整型时的符号扩展行为:如果最初的数值类型是有符号的,那么就执行符号扩展;如果它是char,那么不管它将要被转换成什么类型,都执行零扩展。
看论坛一哥们写的多线程基础总结八--ReentrantReadWriteLock,里面有关死锁的描述引用其中的initCache()简单的说明了特性(a),(b).在这个方法中如果把注释(1)和(2)处的代码调换位置,就会发现轻而易举的死锁了
对应的代码段如下 public void initCache() {
readLock.lock();
if(!completed) {
// Must release read lock before acquiring write lock
...
//: innerclasses/MultiImplementation.java
// With concrete or abstract classes, inner
// classes are the only way to produce the effect
// of "multiple implementation inheritance."
package innerclasses;
class D {
}
abstract class E {
}
class Z extends D {
E makeE() {
...
static elements(static fields and static methods) can only be declared in a static or top level type, that means non-static inner class could not declare static elements