有时你可能需要对变量进行类型检查,或者判断变量是否已定义。有两种方法可以使用:typeof函数与constructor属性。

typeof函数的用法可能不用我多说,大家都知道怎么用。而constructor属性大家可能就陌生点。在《精通JavaScript》与《JavaScript 语言精粹》里都有提到construct的用法,但我用自己的几个浏览器(IE7.0 / Firefox3.6.8 / Opera)测试的结果却和书上说的不一样。但是仍然是有办法通过constructor属性来检查变量类型的。

这里先补充一下,为什么明明有typeof函数可以很方便地用来检测类型,还要用constructor呢?

因为typeof会把所有的数组类型以及用户自定义类型判断为object,从而无法知道更确切的信息。而constructor却可以解决这个问题。

ok,明白了我们为什么要用constructor,现在让我带大家一步步认识一下typeof和constructor用法之间的差异吧~

阅读全文——共1917字

我写JavaScript代码已经很久了,都记不起是什么年代开始的了。对于JavaScript这种语言近几年所取得的成就,我感到非常的兴奋; 我很幸运也是这些成就的获益者。我写了不少的文章,章节,还有一本专门讨论它的书,然而,我现在依然能发现一些关于这种语言的新知识。下面的描述的就是过 去让我不由得发出“啊!”的感叹的编程技巧,这些技巧你应该现在就试试,而不是等着未来的某个时候偶然的发现它们。

简洁写法

JavaScript里我最喜欢的一种东西就是生成对象和数组的简写方法。

在过去,如果你想创建一个对象,你需要这样:

阅读全文——共8452字

目前的 html的语意还不够丰富,它所能表达的无非是段落(p),链接(a),引用(blockquote)等。这些仅仅是文学上语意,而不是人们需要表达的真正内容。 真正内容可以是地址、事件、人物等拥有实际意义的信息。然而html并没有将这些实体标准化。

另人可喜的是html5 正在朝着html语义化的方向发展。而我们国内,也正在从几年前讨论DIV+CSS上升到Html语义化,CSS模块化上。这说明web前端一直在发展,虽然我接触web开发没多少年,但这种变化,我是深刻体会到的。

言归正传,正是由于html标签的疲乏,所能表达的语义不够。所以,出现了Microformats这一技术。其实,确切的说Microformats并不是一种新技术,它的实质只是Markup language(HTML、XHTML)的一小段代码和一小段特定的Web内容,所谓formats指的是它有一种固定的标记格式。

而rel、rev这2个属性,则是为了丰富网页语义而设计的。更确切的说,rel,rev这2个属性,是为了更明确的告诉搜索引擎网页的内容,更好的指引搜索引擎去理解你的网站内容。这对SEO有一定的作用。

区别:rel与rev具有互补的作用,rel指定了向前链接的关系,rev指定了反向链接的关系.

阅读全文——共1318字

检测地址:http://www.seoconsultants.com/tools/headers.asp#results

在我们的网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结 构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹 或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些 域名的用户自动跳转到主站点,等等。

下面是具体跳转的方法,如果你不是很擅长技术。没关系,存下来,用得着的时候,交给你技术看看就好了。

阅读全文——共1624字

ecshop 居然与 jquery 冲突,实在杯具。

网上一搜大多说是 transport.js 的Object.prototype.toJSONString 方法导致的。

ECShop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的。

但恰恰的,在封装JSON各种方法的同时对object的模型进行了重写,这个就跟jQuery冲突了。因为众所周知的,jQuery对各种JavaScript对象进行了扩展。

这一切其实都很容易理解,各有各的理由十分自然,但头痛和无奈的就变得在我们这些使用者身上了。在ECShop论坛上原来也有很多朋友提出了这个问题,也提出了各种各样的方法,我尝试了一些,不好或者甚至无用,所以只好自己动手了。

阅读全文——共2382字

First of all, jQuery 1.4 added the delay function, which I assume is what your custom wait implementation is doing.

Using delay, you can sort of fake the functionality of each element “waiting” on the previous element to finish by using the first parameter to the each callback as a multiplier for an intial delay. Like this:

var duration = 5000;

$(‘elem’).each(function(n) {

阅读全文——共568字

用google app engine的都知道,GAE现在可以绑定自己的域名了,但比较杯具的是,google的dns 经常被国内和谐到账无法访问。

现在,有网上的好人帮我们做了个转向的方法。他们维护了一些可用的GHS的IP地址,我们增加别名的时候,只要把ghs.google.com换成ghs.you8g.com就可以了。当然要在那个网站里提交你的域名才行。

具体使用方法可查看网站:http://www.you8g.com/.

还有一个更简单的方法,就是把ghs.google.com换成google.dns.tancee.com这样可以解决大部分时间被和谐的情况。因为这个CNAME记录还是比较稳定点的。