Javascript优化(文件瘦身)(2)
作者:Grace 来源:Grace 发布时间:2008-06-02 13:20:00
标签:代码,优化,Javascript,文件
其他方法
替换布尔值
对于比较来说,true 就等于 1,false 就等于 0 。因此,脚本包含的字面量 true 都可以用 1 来替换,而 false 可以用 0 来替换。对于 true 节省了 3 个字节,而 false 则节省了 4 个字节。
缩短否定检测
代码中常常会出现检测某个值是否有效的语句。而大部分条件非的判断就是判断某个变量是否为 undefined、null 或者 false,比如:
if (myValue != undefined) {
// ...
}
if (myValue != null) {
// ...
}
if (myValue != false) {
// ...
}
这些虽然都正确,但用逻辑非操作符也可以有同样的效果:
if (!myValue) {
// ...
}
这样的替换也可以节省一部分字节。
使用数组和对象字面量
这个比较好理解,比如一下两行是相同的:
var myArray = new Array;
var myArray = [];
然而第二行比第一行短很多,而且也能非常容易的理解。类似的还有对象声明:
var myObject = new Object;
var myObject = {};
举个例子,比如下面的语句:
var mySite = new Object;
mySite.author = "feelinglucky";
mySite.location = http://www.gracecode.com;
这样写也可以非常容易的理解,并且短很多:
var mySite = {author:"feeinglucky", location:http://www.gracecode.com};
好的,这期就到这里。就向上面说的,Javascript 代码的速度被分割成两部分:下载时间(取决于文件的大小)和执行速度(取决于代码算法)。这次讨论的是下载时间方面的优化,下期讨论运行行速度方面的优化(这样看起来非常有技术含量,不是么)。
0
投稿
猜你喜欢
- 【原文地址】 Tip/Trick: Supporting Full Screen Mode with Silverlight 【原文发表日期
- 就像标题呈现的一样,SQL Server 2008中的MERGE语句能做很多事情,它的功能是根据源表对目标表执行插入、更新或删除操作。最典型
- 学习一些你已经知道的知识也没有什么坏处,是吧?我知道这可能并不一定非常有意义,但是很多时候我们往往知其然而不知其所以然,这会使得事情出现惊人
- 已知有一个XML文件(bookstore.xml)如下:<?xml version="1.0" encoding=
- <%'asp事务处理。'测试数据库为sql server,服务器为本机,数据库名为test,表名为a,两个字段id(i
- 标量(scalar)数据类型标量(scalar)数据类型没有内部组件,他们大致可分为以下四类:. number. character. da
- 当你加入到一个项目,相关的CSS文件可能会看得你头昏眼花。时间一长,修改了哪些内容,增加了哪些内容,也都弄不清,维护成本相当的高。正好我们国
- 做项目的时候,一位同事导数据的时候,不小心把一个表中的数据全都搞重了,也就是说,这个表里所有的记录都有一条重复的。这个表的数据是千万级的,而
- 1.5 学习ASP.net 的过程中如何求助--加入 ASPNG 讨论列表 Charles Carroll 作为不断壮大的 ASP.NET
- 当产品走到HTML Coding这块,多浏览器的测试是很重要,也很麻烦的一个环节。现在大家主要是保证IE6,7及Firefox的一致。bro
- 作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示ORA-01
- 1.建立设计规范的意义 建立设计文档的根本目的
- 知识点: 1、拼接SQL 2、UNION ALL 3、EXEC 其代码如下: 代码如下:--测试示例 declare @sql
- 1、HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Applicatio
- 代理服务是一种复杂的技术,具有很多可配置的移动组件。详细信息如下:信息信息是指在服务代理应用程序中调用的基本信息单元。对于服务代理来说,信息
- 在 CodeBit.cn 的论坛中,有人问 Javascript 中如何截取小数位并实现四舍五入,这是一个很常用的 js 技术,帖子中也有网
- 有时候希望可以用js另开新窗口,但用window.open方法打开窗口总是被浏览器阻止,可以用下面的方法打开新窗口而不会遭到拦截1.新添加一
- 关于导航栏的设计有很多特效,但你浏览过这样一种导航栏特效吗?当鼠标移到导航栏目上时,导航栏目会被一层“
- 尝试安装server[justin@xen20-vm04 "]$ rpm -ivh MySQL-server-5.1.51-1.g
- 不知道算不算DW4的大BUG. DW4实际的运行如下: 读注册表中HKEY_CURRENT_USER/