美文网首页JavaScript
简单模式书写js

简单模式书写js

作者: HTAO濤 | 来源:发表于2022-04-10 21:36 被阅读0次

    JS是一门极其灵活的脚本语言,我认为其灵活性在迅捷开发中有极大的优越性。极简主义代码规范放大了这一优越性,使得小应用、小模块的开发尽可能的清晰快速,同时也不对团队协作造成特别巨大的影响。
    极简主义代码规范的基本方案是:能省则省,即:如果存在语法糖可以简写,则必须简写。
    例子

    const isPrime = x => {
      for (let i = 1; i <= Math.sqrt(x); i++) {
        if (x % i === 0) return false
      }
      return true
    }
    
    const add = (x, y) => x + y
    
    // show codes
    function main () {
      const obj = { a: 1, b: 2, add }
      const anotherObject = {
        hello: 'world!',
        hi: 'haha',
        isPrime, // only property name
      }
      console.log(obj.add(obj.a, obj.b))
      if (isPrime(5)) {
        console.log('prime')
      } else {
        console.log('not prime')
      }
    }
    

    基本

    2个空格缩进(与HTML,CSS一致),必须正确缩进
    分号、逗号之后必须空格或转行
    左大括号不转行
    左大括号之前一定有空格
    若左右大括号在一行,则大括号内侧必须有空格。例如

    const obj = { a: 1, b: 2 }
    

    指令(例如if、return等)后一定有空格
    双目运算符前后必须有空格
    非必要不写分号(无行末分号)
    使用单引号表示字符串(单引号比双引号简单)

    变量

    不使用var,没有显式赋值的变量必须用const,其余用let
    允许多个变量共用声明和初始化语句,逗号隔开,但不能太长。例如:

    const a = 1, b = 2
    

    变量名原则上使用小驼峰命名法(首字母小写,其余单词首字母大写),例如userInfo
    局部变量或临时变量允许简写变量名,例如在一个小函数中允许使用p指代period
    非特殊场景下,变量名不得使用下划线
    对象内容很短时,可以在一行内完成
    对象的最后一个成员后,不得添加逗号
    对象成员变量赋值时,若属性名称和读取的变量名一致,则必须简写。即

    const obj = { token: token }必须简写为const obj = { token }
    

    控制

    if、else、for的执行语句块很短时,可以在行内完成,不必大括号展开。若换行,必须大括号展开。
    else应该与if的右大括号在同一行,此时else前后都有空格,即} else {。
    尽可能使用逻辑截断break、return等,减少else的使用。

    函数

    函数定义时(函数头部)参数表前后都有空格。例如:

    function isPrime (x) {}
    

    函数调用时,函数名和参数表之间没有空格。例如isPrime(5)
    若箭头函数有且仅有一个参数,则参数表的小括号可以省略。基于能省则省的原则,此时小括号必须省略。例如:

    const print = msg => {
      console.log(msg)
    }
    

    若箭头函数直接返回计算值,则必须省略为如下形式:

    const sqr = x => x * x
    

    注释

    注释不要太多,不要啰嗦,写有价值、代码里面没有的内容。
    注释双斜杠后有一个空格// this is a comment
    若所在行有代码,双斜杠前也有空格
    原则上使用英文注释
    对于接口函数等需要详细注释的内容,参考具体的接口文档要求

    相关文章

      网友评论

        本文标题:简单模式书写js

        本文链接:https://www.haomeiwen.com/subject/hyrbsrtx.html