Wang's blog Wang's blog
首页
  • 前端文章

    • HTML教程
    • CSS
    • JavaScript
  • 前端框架

    • Vue
    • React
    • VuePress
    • Electron
  • 后端技术

    • Npm
    • Node
    • TypeScript
  • 编程规范

    • 规范
  • 我的笔记
  • Git
  • GitHub
  • VSCode
  • Mac工具
  • 数据库
  • Google
  • 服务器
  • Python爬虫
  • 前端教程
更多
收藏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Wang Mings

跟随大神,成为大神!
首页
  • 前端文章

    • HTML教程
    • CSS
    • JavaScript
  • 前端框架

    • Vue
    • React
    • VuePress
    • Electron
  • 后端技术

    • Npm
    • Node
    • TypeScript
  • 编程规范

    • 规范
  • 我的笔记
  • Git
  • GitHub
  • VSCode
  • Mac工具
  • 数据库
  • Google
  • 服务器
  • Python爬虫
  • 前端教程
更多
收藏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • CSS

  • Npm

  • Vue

  • HTML

  • Node

  • Yaml

  • React

  • 框架

  • 规范

    • 模板
    • JS规范
      • CSS规范
      • html规范
      • ESLint规范
      • readme文件
      • 命名规范
      • Git操作规范
      • 测试与发布
      • stylelint配置使用
      • Typescript错误忽略
    • Electron

    • JS演示

    • VuePress

    • JavaScript

    • TypeScript

    • 微信小程序

    • TypeScript-axios

    • 前端
    • 规范
    wangmings
    2022-07-19
    目录

    JS规范

    # JS 规范

    # 分号

    不使用分号

    # 字符串

    • 使用单引号
    • 拼接用反单引号
    let str = '字符串'
    let strJoin = `${str}拼接`
    
    1
    2

    # 缩进: 两个空格

    # 变量、常量

    • 使用有意义的变量名,变量尽量不用缩写,增加可读性,命名遵循驼峰命名法
    • 变量定义和命名 let 小驼峰命名,语义化
    let userName = '壁虎科技' // 公司名称
    
    1
    • 常量定义和命名 const,大写,下划线分隔,语义化,下横向分隔
    const ORDER_STATUS = 'create' // 订单状态
    
    1

    # 函数

    • 函数与函数之间空一行,注释函数功能
    • 函数名首字母不用大写,小驼峰命名

    # 注释

    • 每个变量和每个函数,均写注释
    • // 前后加空格,组件库,常用类库,需要按 jsDoc (opens new window) 格式注释
    • 遇到数字与字符,前后添加空格
    let name = '壁虎科技' // 公司名称
    
    /**
     * 格式化时间
     * @param {string|number|object} date 时间内容,可传入时间对象,或时间戳
     * @param {string} formatStr 格式模板
     * @returns {string} 处理后的字符串
    */
    function formatTime(date, formatStr = 'YYYY-MM-DD') {
      let str = ''
      // ...
      return str
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    # 类

    • 类名大写

    # 使用兼容性好的新语法(ES6)与api(例如fetch,URL)

    # console

    • 开发环境,测试完成,不需要的打印,就去除或注释
    • 生产环境,去除 console (webpack 统一配置)

    # 空格

    # 以下几种情况不需要空格:
    • 对象的属性名后
    • 前缀一元运算符后
    • 后缀一元运算符前
    • 函数调用括号前
    • 无论是函数声明还是函数表达式,'('前不要空格
    • 数组的'['后和']'前
    • 对象的'{'后和'}'前
    • 运算符'('后和')'前
    # 以下几种情况需要空格:
    • 二元运算符前后
    • 三元运算符 ?: 前后
    • 代码块'{'前
    • 下列关键字前:else, while, catch, finally
    • 下列关键字后:if, else, for, while, do, switch, case, try, catch, finally, with, return, typeof
    • 单行注释'//'后(若单行注释和代码同行,则'//'前也需要),多行注释'*'后
    • 对象的属性值前
    • for 循环,分号后留有一个空格,前置条件如果有多个,逗号后留一个空格
    • 无论是函数声明还是函数表达式,'{'前一定要有空格
    • 函数的参数之间
    let a = {
      b: 1
    }
    ++x
    y++
    z = x ? 1 : 2
    let c = [1, 2]
    let d = (1 + 2) * 3
    
    let doSomething = function(a, b, c) {
      // do something
    }
    
    doSomething(item)
    
    for (let i = 0; i < 6; i++) {
      x++
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    # 其他

    • if 条件要加大括号
    • 空对象用 null 返回,不使用 {}
    • script 标签引入的文件一般不放在头部,放在 body 下面
    编辑 (opens new window)
    模板
    CSS规范

    ← 模板 CSS规范→

    最近更新
    01
    theme-vdoing-blog博客静态编译问题
    09-16
    02
    搜索引擎
    07-19
    03
    友情链接
    07-19
    更多文章>
    Theme by Vdoing | Copyright © 2019-2022 Evan Xu | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式