JavaScrip学习——规范

参考:

  • 汤姆大叔的博客 : http://www.cnblogs.com/TomXu/archive/2011/12/28/2286877.html
  • 阮一峰           :http://www.ruanyifeng.com/blog/2012/10/javascript_module.html

JavaScript规范

  1. 为了防止命名冲突尽量少用全局变量

    function sum(x, y) {
       // 不推荐写法: 隐式全局变量,即使想要定义成全局也不要使用这种写法,而应该在全局环境中使用var定义
       result = x + y;
       return result;
    }
    function foo() {
       // a是局部变量但b是全局
       var a = b = 0;
    }
  2. 尽量将函数中的变量声明提到函数顶部

    function func() {
       var a = 1,
           b = 2,
           sum = a + b,
           myobject = {},
           i,
           j;
       // function body...
    }
  3. 遍历数组时预先取得数组长度(防止每次循环都要取长度)

    // 次佳的循环
    for (var i = 0; i < myarray.length; i++) {
       // 使用myarray[i]做点什么
    }
    for (var i = 0, max = myarray.length; i < max; i++) {
       // 使用myarray[i]做点什么
    }
  4. 尽量不要扩展js内置的构造函数原型(Object(), Array(), 或Function())

    if (typeof Object.protoype.myMethod !== "function") {
       Object.protoype.myMethod = function () {
          // 如果必要...
       };
    }
  5. 不使用eval()、 with、 for in
  6. 不要给setInterval(), setTimeout()和Function()构造函数传递字符串(等同于使用eval())

    // 反面示例
    setTimeout("myFunc()", 1000);
    setTimeout("myFunc(1, 2, 3)", 1000);
    
    // 更好的
    setTimeout(myFunc, 1000);
    setTimeout(function () {
       myFunc(1, 2, 3);
    }, 1000);
  7. 使用Number()而非parseInt(),使用parseInt()时带上基数

    var month = "06",
        year = "09";
    month = parseInt(month, 10);
    year = parseInt(year, 10);
  8. 使用统一的缩进风格
  9. 尽量不要省略{}
  10. 构造函数首字母大写
  11. 合理使用注释
  12. 使用立即执行(不污染全局、防止私有变量被外部修改)

      var module1 = (function(){
        var _count = 0;
        var m1 = function(){
          //...
        };
        var m2 = function(){
          //...
        };
        return {
          m1 : m1,
          m2 : m2
        };
      })();
  13. //放大模式,用于扩展、继承
    var module1 = (function (mod){
        mod.m3 = function () {
          //...
        };
        return mod;
      })(module1);
     var module1 = ( function (mod){
        //宽放大模式,防止加载到空对象出错
        return mod;
      })(window.module1 || {});
时间: 2024-08-04 03:21:35

JavaScrip学习——规范的相关文章

javaScrip学习笔记

  最近有些许空闲时间,想学习一下前端的东西就计划从javaScript入手.一边看书一边胡乱记下笔记. JavaScript内置对象 隐藏和显示: 语法:Object.style.display = value 注意:Object是获取的元素对象,如通过document.getElementById("id")获取的元素.value:none(显示),block(隐藏). Date 日期对象: 说明:日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). Strin

如何系统地学习JavaScript

在过去,JavaScript只是被用来做一些简单的网页效果,比如表单验证.浮动广告等,所以那时候JavaScript并没有受到重视.自从AJAX开始流行后,人们发现利用JavaScript可以给用户带来更好的体验,甚至利用这一优点开发了大型网页游戏,于是这门小语言被重视了起来.现在,很多公司会招专门的JavaScript工程师,通常JavaScript是WEB前端开发的必备技能.简单介绍了JavaScriptr的好处,并不代表大家就会去学习甚至把它学好,兴趣是很关键的,我认为兴趣是最好的老师,它

这篇文章不错——代码规范

该文章来自于阿里巴巴技术协会(ATA)精选文章. 个人经历 对我代码质量影响最大的是在一家外资企业,在这家公司我觉得有以下几个方面做的很不错. 团队编码风格统一 统一到什么程度? 不看代码作者,你很难区分代码是谁写的(在目前公司一些团队也能达到这个标准). 个人观点: 这样做有什么好处?团队中每个人阅读代码都很容易,减少很多沟通,维护成本( 代码阅读的次数远远大于变更的次数),并且心情非常愉悦.有人肯定觉得愉悦有点夸张,举个栗子: 有一些代码,如果不是由于与工作内容有关联,你是否有种这辈子都不情

实际工作规范和案例框架

菜刀: sql一刀剁了 整个模块丢弃了 调用次数少多了 排序不在需要了 大表砍成小表了 排重操作消失了 插入障碍小多了 迁移事情不做了 手术刀: 大表等于小表了 大表切成小表了 索引变身小表了 删除动作不做了 清表角度表换了 提交次数缩减了 迁移越来越快了 sql语句精简了 思路: 诊断 过程细化 找出细化项的主要矛盾 改进优化 理解需求 表明需求 隐藏需求 真正需求 设计 尽量不做事,甚至少做事. 选择相关工具,掌握相关技能 合理利用资源 规范: 数据库规范 学习规范 了解自己的职责 根据职责

如果我可以重新学习iOS开发(转)

在过去的几个月里,我一直在学习用Objective-C编写iOS app,最后我开始理清思绪.这比我想象中要难很多,也花了太长时间. 我经常遇到困难.感到沮丧,修复bug比实际写代码要花太多时间.但是,在我的手机上把玩我从头开发的app有一种让人惊奇的感觉. 用这种方式我学到了很多,除了开发iOS app,还有平常的编程.我还遇到了一些问题,如果用不同的方法学习Objective-C,或许我就可以避免了. 回头看,如果我今天要学习编程,那么我会做一些不一样的事情. 找到一名编程小伙伴 我还找到一

JavaEE的整体概述

JavaEE整体概述 知识点: 1.整体概述JavaEE的知识体系 2.JavaEE是什么? 能干什么? 为什么需要JavaEE? 3.JavaEE有什么? JavaEE的技术体系? JavaEE的本质是什么? 4.JavaEE的零散基础知识 5.JavaEE的组件体系结构 ----------------------------------------------------------------------------------------------------- 先来一张整体的概括图

【转载】三年0故障总结,提升代码质量的秘诀

该文章来自于阿里巴巴技术协会(ATA)精选文章. 个人经历 对我代码质量影响最大的是在一家外资企业,在这家公司我觉得有以下几个方面做的很不错. 团队编码风格统一 统一到什么程度? 不看代码作者,你很难区分代码是谁写的(在目前公司一些团队也能达到这个标准). 个人观点: 这样做有什么好处?团队中每个人阅读代码都很容易,减少很多沟通,维护成本( 代码阅读的次数远远大于变更的次数),并且心情非常愉悦.有人肯定觉得愉悦有点夸张,举个栗子: 有一些代码,如果不是由于与工作内容有关联,你是否有种这辈子都不情

前后端分离及React的一些研究

前言 在对英才网企业线前端不断的完善过程中,我们尝试进行了前后端分离,引入Node环境.以及在使用React的过程中,自行开发DOM渲染框架,解决React兼容低版本IE的问题,在这个过程中,我们有了一些经验和体会,希望本文对您有所帮助. 为什么前后端分离 原有架构下,后端系统基于Java语言实现,通过Velocity模板实现服务器端渲染,前端同学维护静态资源,在维护页面状态时,还需要模板和脚本互传参数,模板中还会有很多UI逻辑,等等,前后端耦合很深,这种模式下开发效率非常低,联调成本非常高,同

如何修改Android中模拟器的sdcard权限的问题

最近几天在学习开发Android项目中文件和数据库的时候,由于要用到模拟器中的sdcard,但是突然发现怎么这个sdcard的权限不对呢?于是导致开发的停断,本着良好的学习规范,于是先查了查网上的一些说法. 具体的内容如下: 现在的权限: 网上大多数的说法就是如下图所示的,就是在AVD管理器中添加SD Card support这个选项. 当然不否认这个方法有些人用成功过,但是对于我的模拟器却不怎么管用,相信有与我遇到类似问题的也是行不通,但是究竟是不是这里的原因呢?其实这里只是添加一些有关硬件的