关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » JavaScript »JavaScript 代码风格指南

    JavaScript 代码风格指南

    2015-04-26 00:00:00 出处:叶小钗
    分享

    一.基本格式

    缩进

    建议每级4个空格,可以给编辑器设置tab = 4个空格,自动转换

    分号

    不要省略分号,防止ASI(自动插入分号)错误

    行宽

    每行代码不超过80个字符,过长应该用操作符手动断行

    断行

    操作符在上一行末尾,且下一行缩进2级,假如是赋值语句,还应该和等号后面部分对齐

    空行

    函数声明与函数声明、变量声明与函数声明、函数内部的逻辑块之间都应该有空行隔开

    作者尼古拉斯还建议在流程控制块顶部留一个空行,但给的例子不是很明确

    命名

    变量名/函数名:Camel(驼峰)规则,首词首字母小写,后续词首字母大写,其余部分小写 常量名:C语言式,全大写,下划线分词 构造函数:Pascal规则,所有词首字母大写,其余部分小写

    字面量

    字符串:双引号包裹,断行用[+]操作符,不要用转义字符 数值:不要省略小数点前后的部分,不要用八进制形式 Null:只把null当作Object的占位符,不要用来检测形参,也不要用来检测未初始化的变量 Undefined:应该把所有对象都初始化为null,以区分未定义和未初始化 对象字面量/数组字面量:不要用构造函数方式声明对象和数组

    二.注释

    P.S.书中有一句非常经典的解释:

    Appropriately written comments help tell the story of code, allowing other developers to drop into a part of the story without needing to hear the beginning.

    单行注释

    行尾:用1级缩进隔开代码,而且//后面要有一个空格 独占一行:用来注释下面,要与被注释的代码保持相同的缩进 行首:用来注释多行代码

    多行注释

    用来包裹大段注释,推荐Eclipse风格,例如

    /*
     * comment line1
     * comment line2
     */

    注意:

    多行注释上方留一个空行 *星号后面留一个空格 多行注释至少三行(因为第一行和最后一行后面不加注释)

    在哪里添注释

    不能自解释的代码 故意的,但看起来像是有错的地方 针对浏览器的hack

    文档注释

    应该给各个函数添注释,包括功能描述、参数、返回值、抛出的错误等等,例如推荐的Eclipse风格:

    /**
     * 添加指定元素到默认数组
     *
     * @method add
     * @param {Number} 将要添加的元素
     * @return {Boolean} 添加成功/失败
     * @throw {TypeError} 参数类型不匹配
     */
    function add(item){
        if(typeof item === "number"){
            arr.push(item)
        }
        else{
            throw new TypeError();
        }
    }

    三.语句和表达式

    花括号对齐方式

    建议行尾风格,不推荐次行风格

    块语句空格

    if后的圆括号部分前后各有一个空格,例如:

    if (expr) {
        code
    }

    switch语句

    缩进:case与switch对齐,break缩进1级 case贯穿:用空行或注释//falls through表明case贯穿是故意的 default:保留default或者用注释//no default表明没有default

    P.S.《JavaScript语言精粹》的作者道格拉斯认为不应该用case贯穿(称之为鸡肋),因为极易引发bug,而尼古拉斯认为用空行或者注释说明就好了

    with语句

    不用

    for循环

    所有变量都应该在函数体顶部声明,包括for循环初始化部分用到的变量,避免hosting(提升)引发bug(可能会屏蔽全局变量)

    for-in循环

    不要用来遍历数组,用的时候记得加上hasOwnProperty过滤,假如故意遍历原型属性,应该用注释说明

    四.变量、函数、操作符

    变量声明

    函数体 = 变量声明 + 函数声明 + 逻辑语句。用空行隔开各个部分

    函数声明

    先声明再使用,千万不要把函数声明放在if分支里,因为浏览器理解不同,而且ES没给标准

    函数调用

    圆括号前后都不加空格,避免和块语句混淆

    匿名函数立即执行

    把立即执行的匿名函数用圆括号包裹,避免与匿名函数声明混淆

    严格模式

    不要在全局作用域开严格模式,只在函数内部开,给多个函数开可以用匿名函数立即执行限定严格模式的作用域

    判断等于

    只用===和!==

    eval

    不用eval()和new Function(),用匿名函数优化setTimeout()和setInterval()

    基本包装类型

    不要用new Boolean(), new String(), new Number()

    参考资料

    《Maintainable JavaScript》 《JavaScript语言精粹》
    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    Edge浏览器百度被劫持/篡改怎么办,地址后边跟着尾巴#tn=68018901_7_oem_dg

    Google Chrome 在 iPhone 上新增了 Safari 数据导入选项

    Windows 11专业版 KMS工具激活产品密钥的方法

    DEDECMS安全策略官方出品

    Microsoft Text Input Application 可以关闭吗?

    新版本QQ如何关闭自带的浏览器?

    C++编程语言中continue的用法和功能,附举例示范代码

    c++ map 的数据结构、基本操作以及其在实际应用中的使用。

    C语言如何避免内存泄漏、缓冲区溢出、空指针解引用等常见的安全问题

    C语言中的break语句详解

    IT头条

    马斯克2026最新采访总结:2040年,全球机器人数量将突破100亿台

    23:52

    专家解读|规范人工智能前沿业态健康发展的新探索:解读《人工智能拟人化互动服务管理暂行办法》

    00:54

    用至强 6高存力搞定MoE卸载!

    17:53

    美国将允许英伟达向中国“经批准的客户”出售H200 GPU

    02:08

    苹果与微信就15%手续费达成一致?腾讯未置可否

    22:00

    技术热点

    PHP 和 Node.js 的10项对比挑战

    Javascript闭包深入解析及实现方法

    windows 7、windows 8.1手动增加右键菜单功能技巧

    MYSQL出错代码大汇总

    windows 7假死机怎么办 windows 7系统假死机的原因以及解决方法

    Ubuntu(Linux)下配置IP地址的方法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。