行与缩进

  语句行

  尽可能不要让每行超过 120 个字符;

  语句必须以分号作为结束符, 不要忽略分号;

空格

  数值操作符(如, +/-/*/% 等)两边留空;

  赋值操作符/等价判断符两边留一空格;

  for 循环条件中, 分号后留一空格;

  变量声明语句, 数组值, 对象值及函数参数值中的逗号后留一空格;

  空行不要有空格;

  行尾不要有空格;

  逗号和冒号后一定要跟空格;

  点号前后不要出现空格;

  空对象和数组不需要填入空格;

  函数名末尾和左括号之间不要出现空格;

空行

  逻辑上独立的代码块使用空行分隔;

  文件末尾留 1~2 个空行;

  不要吝啬空行. 尽量使用空行将逻辑相关的代码块分割开, 以提高程序的可读性.

  缩进

  以 4 个空格为一缩进层次;

  变量声明:

  多个变量声明时, 适当换行表示;

  参照 var 关键字, 缩进一层次;

  函数参数:

  函数参数写在同一行上;

  传递匿名函数时, 函数体应从调用该函数的左边开始缩进;

  数组和对象初始化时:

  如果初始值不是很长, 尽量保持写在单行上;

  初始值占用多行时, 缩进一层次;

  对象中, 比较长的变量/数值, 不要以冒号对齐;

  二元/三元操作符:

  操作符始终跟随前行;

  实在需要缩进时, 按照上述缩进风格;

  表达式中的缩进同变量声明时;

括号

  原则: 不要滥用括号, 必要时一定要使用.

  if/else/while/for 条件表达式必须有小括号;

  语句块必须有大括号;

  一元操作符(如 delete, typeof, void)或在某些关键词(如 return, throw, case, new) 之后, 不要使用括号;

 

变量

  变量如有较广的作用域, 使用全局变量; 如果是在类中, 可以设计成为一个类的成员;

  函数体中, 多个局部变量集中在一起声明, 避免分散;

  适当延迟变量的初始化;

  字符串

  JS 代码中, 单行字符串使用单引号;

  JS 代码中, 多行字符串使用 + 拼接形式, 不要使用 \ 拼接;

  HTML 中 Element 属性, 使用双引号;

命名规范

  原则: * 尽量避免潜在冲突; * 精简短小, 见名知意;

  普通变量统一使用驼峰形式;

  常量使用全部大写, 多个单词以下划线分隔;

  枚举量, 同常量;

  私有变量, 属性和方法, 名字以下划线开头;

  保护变量, 属性和方法, 名字同普通变量名;

  方法和函数的可选参数, 名字以 opt_ 开头, 使用 @param 标记说明;

  方法和函数的参数个数不固定时:

  可添加参数 var_args 为参数个数;

  取代使用 arguments;

  使用 @param 标记说明;

  Getter/Setter 命名:

  以 getFoo/setFoo(value) 形式;

  布尔类型使用 isFoo()/hasFoo()/canDo()/shouldDO() 也可;

命名空间

  为全局代码使用命名空间, 如 sloth.*;

  外部代码和内部代码使用不同的命名空间;

  重命名那些名字很长的变量, 不要在全局范围内创建别名, 而仅在函数块作用域中使用;

  文件名应全部使用小写字符, 且不包含除 - 和 _ 外的标点符号;

  临时的重复变量建议以 i, j, k, ..., 命名;

  声明变量时, 必须加上 var 关键字.

  尽量减少全局变量的使用.

  语句总是以分号结尾.

  不要在块内声明函数.

  标准特性优于非标准特性(如果类库有提供, 优先使用类库中的函数).

  不要封装基本类型.

  只在解析序列化串时使用 eval() .

  禁止使用 with .

  减少使用 continue 和 break .

  仅在函数内使用 this .

  使用 Array/Object 直接量, 避免使用 Array/Object 构造器.

  禁止修改内置对象的原型.

转载于:https://www.cnblogs.com/shuaixf/archive/2012/05/03/2480360.html

淘宝JavaScript 编码风格规范相关推荐

  1. JavaScript编码风格指南

    首次发表在个人博客 前言 程序语言的编码风格指南对于一个长期维护的软件而言是非常重要的;好的编程风格有助于写出质量更高.错误更少.更易于 维护的程序. 团队合作需要制定一些代码规范还有利用一些工具来强 ...

  2. 【PHP开发规范】继承与扩展:PSR-2 编码风格规范

    之前的一篇文章是对PSR-1的基本介绍 接下来是PSR-2 编码风格规范,它是 PSR-1 基本代码规范的继承与扩展. PSR-1 和PSR-2是PHP开发中基本的编码规范,大家其实都可以参考学习下, ...

  3. Airbnb JavaScript 编码风格指南(2018年最新版)

    Airbnb JavaScript 编码风格指南(2018年最新版) 访问此原文地址:http://galaxyteam.pub/didi-fe... 另外欢迎访问我们维护的https://www.t ...

  4. 一些达成共识的JavaScript编码风格约定

    如果你的代码易于阅读,那么代码中bug也将会很少,因为一些bug可以很容被调试,并且,其他开发者参与你项目时的门槛也会比较低.因此,如果项目中有多人参与,采取一个有共识的编码风格约定非常有必要.与其他 ...

  5. php 结构体_【开发规范】PHP编码开发规范下篇:PSR-2编码风格规范

    之前的一篇文章是对PSR-1的基本介绍 接下来是PSR-2 编码风格规范,它是 PSR-1 基本代码规范的继承与扩展. PSR-1 和PSR-2是PHP开发中基本的编码规范,大家其实都可以参考学习下, ...

  6. php psr 编码规范_PHP编码风格规范

    由于PHP的灵活性,很多人写起代码来也不讲求一个好的代码规范,使得本就灵活的PHP代码看起来很乱,其实PSR规范中的PSR-1和PSR-2已经定义了在PHP编码中的一些规范,只要我们好好遵守这些规范, ...

  7. DZ主题模板 Discuz迪恩淘宝客购物风格商业版模板

    Discuz淘宝客网站模板,迪恩淘宝客购物风格商业版模板. 版本支持:discuzx3.0版本,discuzx3.1版本,discuzx3.2版本. 包括网站首页,论坛首页,论坛列表页,论坛内容页,论 ...

  8. 良好的JavaScript编码风格(语法规则)

    编码风格 1.概述 "编程风格"(programming style)指的是编写代码的样式规则.不同的程序员,往往有不同的编程风格. 有人说,编译器的规范叫做"语法规则& ...

  9. 淘宝 第三方应用安全规范

    转载地址:http://open.taobao.com/doc/detail.htm?id=813 规范目的 随着开放平台的开放大趋势,越来越多的ISV通过开放平台,接入到淘宝的电子商务生态圈,为淘宝 ...

最新文章

  1. 这个帖子要收藏,以后用得着--python 实时获取子进程输出
  2. ios 开发框架原始雏形 01
  3. horizon服务主要模块_OpenStack组件——Horizon Web界面管理服务
  4. c语言链表有没有哨兵的区别,链表中的哨兵(sentinel)
  5. Beauty Of Unimodal Sequence(HDU-6592)
  6. 笔记本启动关闭小键盘NUM LOCK的N种方法
  7. ARMv8-A Exception Levels
  8. IntelliJ IDEA中创建jsp项目
  9. python webdriver脚本例子_python-webdriver 开始第一个脚本
  10. excel随机数_EXCEL随机数函数rand、randbetween
  11. 计算机网络技术ip地址计算,计算机网络原理-IP地址计算题.doc
  12. 小牛电动Q1营收5.5亿:净利润不及预期,3个月内市值缩近五成
  13. MATLAB调用DLL
  14. 2022渗透测试-文件上传漏洞的详细讲解
  15. 设计模式GOF23之-------------------结构型模式(适配器模式、代理模式、桥接模式、装饰模式、组合模式、外观模式、享元模式)
  16. 服务器系统共享文件,服务器操作系统文件共享设置
  17. ElasticSearch语法整理-DSL语言高级查询
  18. 添加 frida-gadget 到安卓应用(无须 root)
  19. html区域框什么意思,如何理解【没有padding 、margin、border的情况下 ,行内框等于内容区域】这句话?...
  20. C++实验七——类的继承(1)

热门文章

  1. jQuery学习笔记系列(三)——事件注册、事件处理、事件对象、拷贝对象、多库共存、jQuery插件、toDoList综合案例
  2. Web框架——Flask系列之Flask-SQLAlchemy数据库的基本操作(九)
  3. 天池 在线编程 最佳利用率(二分查找 + 哈希)
  4. LeetCode 244. 最短单词距离 II(哈希map+set二分查找)
  5. 公需科目必须学吗_专业技术人员一般公需科目学习的通知
  6. 端口可以随便设置吗_驱动可以随便更新吗?
  7. Codeforces Round #697 (Div. 3)A~G解题报告
  8. NLP、炼丹技巧和基础理论文章索引
  9. Mock Server实践
  10. 东南大学王萌 | “神经+符号”学习与多模态知识发现