摘要:
这是一个很常见的日期选择级联组件,先看下效果:View Code <div> <p> <input type="text" id="birthday" name="birthday" value="2008/2/29" /> </p></div><script src="http://files.cnblogs.com/akakingback/datacascade-origin.js"></script>< 阅读全文
摘要:
有人曾经利用了数组的一个IE的特性创造出了所谓全世界最短的IE判断,即数组最后多加了一个逗号,关于这个特性请看snandy童鞋的文章《定义对象或数组直接量时不同引擎对多余逗号的处理》,这个特性其实以前也研究过,但没有将它和这个IE判断联系起来,现在简单分析一下。var isIE = !-[1,];alert(isIE);其实isIE的赋值可以写成:var isIE = !(-(Number([1,].toString())));在IE下[1,]包含有两个元素,一个是1,一个是undefined,而在其他浏览器里这个数组只有一个1,因此:IE下[1,].toString()等于'1, 阅读全文
摘要:
之前在射雕的博客上看过一道题,其中有段代码如下:if (![] == []) { //Code}![] == [],true or false?我们都知道,ECMAScript中有两种类型的相等操作符:全等与不全等——直接比较而不转换类型相等与不相等——先转换类型再比较全等与不全等的逻辑比较简单,而今天我们要关注的是我们平时用得比较多的第二种操作符:相等与不相等。当我们对两个操作数用 == 进行比较的时候,我们分两种情况:== 两边操作数的类型相同与不相同。我们都知道类型不相同时需要先转换类型,但是其中的转换规则是什么样的呢?也许许多人都不曾仔细研究过,今天我们就通过分析![] == []来深 阅读全文
摘要:
我们在创建对象时经常会用到构造函数和prototype,但是为什么要这样做呢?其中的来龙去脉又是如何?长久以来我也是对此一知半解,读过Nicholas C. Zakas的《JavaScript高级程序设计(第二版)》之后,豁然开朗,在此总结一下。1.创建简单的对象上面的代码创建了一个最简单的对象,很直白明了,早期的JavaScript开发人员经常使用这个模式创建新对象。但是缺点很明显,当我们要创建很多类似的对象时,会产生大量重复的代码。于是人们开始使用下面这种工厂模式的一种变体。2.工厂模式由于在JavaScript中无法创建类,于是我们用函数来封装以特定的借口创建对象的细节,如下面例子所示: 阅读全文
摘要:
师兄说:学习是一个积累总结的过程。 写写技术博客,巩固自己的技术,提高自己蹩脚的文笔。 认真生活,快乐工作! 阅读全文