`
yangyongByJava
  • 浏览: 126444 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

编写js需注意的几项规则

阅读更多

1、总是使用var声明变量。如function fun() { var i = 0; }等,否则变量i会变成全局变量;

2、常量使用诸如NAME_LIKE_THIS进行命名;

3、ECMAScript建议使用块声明函数,因为ECMAScript只允许在根语句(如<script></script>中)声明函数,如

      if(x) {

           var i = function() {...};

      }

而非使用

      if(x) {

           function() {...}

      }

4、避免使用包装类型声明原始的数据类型

较好的方式:
var x = Boolean(0);
if (x) {
  alert('hi');  // This will never be alerted.
}
较差的方式:
var x = new Boolean(false); 因为false是一个对象,对象转换成boolean型数据时,会转换成true,除了null和undefied对象之外。
if (x) {
  alert('hi');  // Shows 'hi'.
}

5、尽量避免使用delete删除对象的属性,使用赋null的方式,因为使用重新分配值的方式性能较快,同时使用delete需要避免操作工程中出现异常

较好的实现方式:
Foo.prototype.dispose = function() {
  this.property_ = null;
};
较差的实现方式:
Foo.prototype.dispose = function() {
  delete this.property_;
};

6、尽量避免使用eval(),因为eval()容易造成语义混乱,建议使用JSON代替

{
  "name": "Alice",
  "id": 31502,
  "email": "looking_glass@example.com"
}
var userInfo = eval(feed);
var email = userInfo['email'];
var userInfo = JSON.parse(feed);
var email = userInfo['email'];

7、尽量避免使用for-in进行循环,使用原生态的for(...;...;...)代替,因为for-in循环时会查询原型里的属性,速度慢;

8、构建数组对象时,尽量使用Object代替Array数组

var a1 = new Array(x1, x2, x3);
var a = [x1, x2, x3]; //使用Object构建数组对象

9、尽可能延迟变量的初始化(为变量赋值);

10、声明字符串时,使用'代替",方便对HTML进行声明;

文章载自:http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml

分享到:
评论

相关推荐

    TypeScript-Injections:TypeScript Injections是一个依赖项注入库,它将责任从生产者转移到客户

    TypeScript Injections是一个库,可简化项目中的依赖关系管理。 介绍 TypeScript Injections... 允许编写与SOLID规则兼容的代码。 安装 您可以使用npm获取最新版本: $ npm install typescript-injections --save 用法

    asp.net知识库

    .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库 SQL Server数据库安全规划全攻略 .net通用数据库访问组件SQL Artisan应用简介1 在Framework1.0下...

    正则表达式

    在正则表达式中括号具有几种作用.它的主要作用是把单独的项目分组 成子表达式,以便可以像处理一个独立的单元那种用 *、+或? 来处理那些项目.例如: /java(script) ?/ 匹配的是字符串 "java",其后既可以有 "script",...

    html入门到放弃笔记

    1、编写一对 body 标记,在body标记中,嵌套一对 div标记,在 div 标记中 ,嵌套一对 a 标记,在 a标记中,嵌套一对 b 标记,b标记中,随意编写一些文本 &lt;body&gt; 这是一段测试文本 &lt;/body&gt; ...

    测试培训教材

    The VAPI-XP testing tool enables you to create new testing scripts using Microsoft VBScript, Microsoft JavaScript (JScript version), PerlScript, and PythonScript, and integrate these scripts into your...

    web-sprint-challenge-intro-to-react

    您需要证明自己对前几天引入和实践的概念和目标的熟练程度。 在sprint挑战期间,不允许您进行协作。但是,建议您遵循20分钟规则,并在需要指导的情况下寻求TL的支持。 全日制学生 您必须在太平洋标准时间下午5点之前...

    JQuery&CSS;&CSS;+DIV实例大全.rar

    1)AjaxJavaScript资源 1.JS+CSS仿腾讯QQ首页搜索框无刷新换肤效果代码 2.js+css简单后台二级树形菜单demo示例 3.JS+CSS美化经典Select选项框插件 4.JS+CSS通用一个页面同时三个焦点图轮换效果完整实例 5....

    网奇CMS网站管理系统 v6.0.2 bulid2015.07.09.zip

    ================网奇CMS网站管理系统6.0百项功能一览==================== 1.使用全球通用的utf-8编码,符合国际标准 2.支持百万级的数据运行 3.提供系统统计信息,包括登陆记录,工作排行,运行状态,信息数目...

    vc++ 应用源码包_6

    MFC+DLL的编写和调用示例 MFC换肤完全贴图实现 Smile简体版 Linux内核完全注释附 MFC+消息循环贴图---金山毒霸界面 自绘控件实现。 MFCDemo DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI...

    vc++ 应用源码包_5

    MFC+DLL的编写和调用示例 MFC换肤完全贴图实现 Smile简体版 Linux内核完全注释附 MFC+消息循环贴图---金山毒霸界面 自绘控件实现。 MFCDemo DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI...

    vc++ 应用源码包_1

    MFC+DLL的编写和调用示例 MFC换肤完全贴图实现 Smile简体版 Linux内核完全注释附 MFC+消息循环贴图---金山毒霸界面 自绘控件实现。 MFCDemo DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI...

    vc++ 应用源码包_2

    MFC+DLL的编写和调用示例 MFC换肤完全贴图实现 Smile简体版 Linux内核完全注释附 MFC+消息循环贴图---金山毒霸界面 自绘控件实现。 MFCDemo DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI...

    vc++ 应用源码包_3

    MFC+DLL的编写和调用示例 MFC换肤完全贴图实现 Smile简体版 Linux内核完全注释附 MFC+消息循环贴图---金山毒霸界面 自绘控件实现。 MFCDemo DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    此外,还要考虑开发人员的水平,学习了两年的jsp开发,对于这个系统的编写,我想完整的之需要两个月就可以写出程序,再花上几天的调试,计划两个月左右就可以完成投入使用了。 我们掌握了数据库及其应用技术、...

    vc++ 开发实例源码包

    MFC+DLL的编写和调用示例 如题。 MFC换肤完全贴图实现 如题。 Smile简体版 很简单,只能播放mp3格式的音乐。 功能: --------------------------------------- --------关闭-- 打开----最小化------- ----------...

Global site tag (gtag.js) - Google Analytics