易截截图软件、单文件、免安装、纯绿色、仅160KB

Javascript开发之js压缩篇

YUI Compressor 压缩 JavaScript 的内容包括:
移除注释
移除额外的空格
细微优化
标识符替换(Identifier Replacement)
YUI Compressor 包括哪些细微优化呢?
object["property"] ,如果属性名是合法的 JavaScript 标识符(注:合法的 JavaScript 标识符——由一个字母开头,其后选择性地加上一个或者多个字母、数字或下划线)且不是保留字,将优化为: object.property
{"property":123} ,如果属性名是合法的 JavaScript 标识符且不是保留字,将优化为 {property:123} (注:在对象字面量中,如果属性名是一个合法的 JavaScript 标识符且不是保留字,并不强制要求用引号引住属性名)。
'abcd\'efgh',将优化为 "abcd'efgh"。
"abcd" + "efgh",如果是字符串相连接,将优化成 "abcdefgh"(注:所有在使用 YUI Compressor 的前提下,对于脚本中的字符串连接,使用连接符 “+” 的效率和可维护性最高)。
对于 JavaScript 最有效的压缩优化,当属标识符替换。
比如:
(function(){
    function add(num1, num2) {
        return num1 + num2;
    }
})();
进行属标识符替换后:
(function(){
    function A(C, B) {
        return C+ B;   
}
})();
再移除额外的空格,最终成了:
(function(){function A(C,B){return C+B;}})();
YUI Compressor 标识符替换仅替换函数名和变量名,那哪些不能被替代呢?
原始值:字符串、布尔值、数字、null 和 undefined。一般来说字符串占的空间最多,而非数字字面量其次(true、false,null,underfinded)。
全局变量:window、document、XMLHttpRequest等等。使用最多的就是 document、window。
属性名,比如:foo.bar。占据的空间仅次于字符串,”.” 操作符无法被代替,且 a.b.c 更加费空间。
关键字。经常被过度使用的关键字有:var、return。最好的优化方法:一个函数仅出现一次 var 和 return 关键字。
对于原始值、全局变量、属性名的优化处理方式大致相同:任何字面量值、全局变量或者属性名被使用超过 2 次(包括2次),都应该用局部变量存储代替。
但有部分情况下是禁止使用标识符替换的:
使用 eval() 函数。解决方法:不使用或者创建一个全局函数封装 eval()。
使用 with 语


相关文档:

Javascript中的利用原形链和对象冒充创建类

看到一个曾经搞过web的人的blog中说到如果学Javascript不懂原形链,就太遗憾了,所以当自己看《javascript高级程序设计》时就留意了一下,说实话,下面的代码很简单,但是不是很懂所谓的原形链和对象冒充之类的东西 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org ......

javascript 经常用的一些特殊效果

1. 让文字不停的滚动。
     <marouee>滚动文字</marouee>
2.记录并显示网页的最后修改时间
     <script language="javascript">
         doucument.write("最后更新时间:" + document.lastModified + " " ......

js javascript:void(0) 真正含义

我想使用过ajax的都常见这样的代码:
<a href="javascript:doTest2();void(0);">here</a>
但这儿的void(0)究竟是何含义呢?
Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
expr ......

利用JavaScript弹出div层,以及递归调用

function BOX_show(e,obj)//显示
{
    if(obj<24)
        document.cookie = "tdid="+obj;
    if(document.getElementById(e)==null)
    {
        return ;
    }
&n ......

JavaScript调试方法之一

使用try{...}catch(){}  方式,例子如下:
function showAlarm(strObject){
try{
svgElement = document.getElementById(strObject);
svgElement.setAttribute("visibility","visible");
setTimeout("hideAlarm()",3000);//3秒后结束报警
}catch(ex){
alert("函数showAlarm()发生异常:"+ex.descrip ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号