WEB前端之javascript规范

JavaScript语言 2020-11-13 05:03:56
前端 Web javascript 规范


JavaScript 是一门弱类型语言,正因如此导致写法五花八门,这里整理了一些在编写代码时需要注意的事项

通用规范

文件编码

为了避免内容乱码,统一使用 UTF-8 编码保存。

在文件结尾处,保留一个空行。

代码检测

开启 eslint 代码规范和错误检查。

在严格模式模式下编码

'use strict';

类型规范

  • js 数据类型有 string、number、boolean、null、undefined、array、function 和 object 这几种,不同数据类型有不同的存储方式,也对应有不用的使用方法,对于数据赋值要注意以下几点

    • 初始值类型要明确
    • 不要随意变换类型
  • 类型检测优先使用 typeof。对象类型检测使用 instanceof。null 或 undefined 的检测使用 == null。

  • 字符串开头和结束使用单引号 '...string...'

命名规范

  • 变量命名采用小驼峰命名,如:addUser password studentID

  • 常量命名采用单词所有字母大写,并用下划线分隔,如:FORM_NAME

  • 对于对象、函数、和实例采用小驼峰(camelCase)命名法

    // 对象
    let isObject = {};
    // 函数
    function isFun(){
    ...
    };
    // 实例
    let myBbj = new Object();
    web前端开发资源Q-q-u-n: 767273102 ,内有免费开发工具,零基础,进阶视频教程,希望新手少走弯路
    

* 对于类命名或者构造函数,采用大驼峰命名 User() DateBase()
```
// 类
class Point {
...
};
// 构造函数
function User(options) {
this.name = options.name;
}
let myBbj = new User({
name: 'yup'
});
```
## 代码规范
### 缩进
统一使用`两个空格缩进`,不推荐使用 tap 缩进。
### 引号
统一使用`单引号`。
### 换行
每个独立语句结束后必须换行。
### 分号
不得省略语句结束的分号
### 代码块
使用花括号包裹所有的多行代码块。
*单行 if 语句也必须使用花括号括住*

// 推荐
if (true) {
// TODO …
}


// 不推荐
if (true) // TODO …


### 使用全等符号
在等号表达式中使用类型严格的 `===`和`!==`。使用 === 可以避免等于判断中隐式的类型转换。

// 推荐
if (age === 30) {
// …
}


// 不推荐
if (age == 30) {
// …
}


## 注释规范
### 单行注释
使用 `//` 作为单行注释。在评论对象上面另起一行使用单行注释。在注释内容前插入一个空格。

// 单行注释


### 多行注释
以`/*`开头,`*/`结尾,注释内容前后加一个空格

/*

  • 第一行注释
  • 第二行注释
    */

/* 另外一种写法 */


### 方法注释
函数(方法)注释也是多行注释的一种,但是包含了特殊的注释要求,关键方法必须加注释。

/**

  • 方法功能描述
  • @param {*} 参数
  • @param {*} 参数
  • @param {*} 参数
  • @param {*} 参数
  • @return 返回值
    */
    web前端开发资源Q-q-u-n: 767273102 ,内有免费开发工具,零基础,进阶视频教程,希望新手少走弯路

### TODO 注释
使用 // TODO: 标注问题的解决方式。

function Calculator() {
// TODO: total should be configurable by an options param
}


版权声明
本文为[JavaScript语言]所创,转载请带上原文链接,感谢
https://blog.csdn.net/nnnn1235657/article/details/94763899

  1. [front end -- JavaScript] knowledge point (IV) -- memory leakage in the project (I)
  2. This mechanism in JS
  3. Vue 3.0 source code learning 1 --- rendering process of components
  4. Learning the realization of canvas and simple drawing
  5. gin里获取http请求过来的参数
  6. vue3的新特性
  7. Get the parameters from HTTP request in gin
  8. New features of vue3
  9. vue-cli 引入腾讯地图(最新 api,rocketmq原理面试
  10. Vue 学习笔记(3,免费Java高级工程师学习资源
  11. Vue 学习笔记(2,Java编程视频教程
  12. Vue cli introduces Tencent maps (the latest API, rocketmq)
  13. Vue learning notes (3, free Java senior engineer learning resources)
  14. Vue learning notes (2, Java programming video tutorial)
  15. 【Vue】—props属性
  16. 【Vue】—创建组件
  17. [Vue] - props attribute
  18. [Vue] - create component
  19. 浅谈vue响应式原理及发布订阅模式和观察者模式
  20. On Vue responsive principle, publish subscribe mode and observer mode
  21. 浅谈vue响应式原理及发布订阅模式和观察者模式
  22. On Vue responsive principle, publish subscribe mode and observer mode
  23. Xiaobai can understand it. It only takes 4 steps to solve the problem of Vue keep alive cache component
  24. Publish, subscribe and observer of design patterns
  25. Summary of common content added in ES6 + (II)
  26. No.8 Vue element admin learning (III) vuex learning and login method analysis
  27. Write a mini webpack project construction tool
  28. Shopping cart (front-end static page preparation)
  29. Introduction to the fluent platform
  30. Webpack5 cache
  31. The difference between drop-down box select option and datalist
  32. CSS review (III)
  33. Node.js学习笔记【七】
  34. Node.js learning notes [VII]
  35. Vue Router根据后台数据加载不同的组件(思考->实现->不止于实现)
  36. Vue router loads different components according to background data (thinking - & gt; Implementation - & gt; (more than implementation)
  37. 【JQuery框架,Java编程教程视频下载
  38. [jQuery framework, Java programming tutorial video download
  39. Vue Router根据后台数据加载不同的组件(思考->实现->不止于实现)
  40. Vue router loads different components according to background data (thinking - & gt; Implementation - & gt; (more than implementation)
  41. 【Vue,阿里P8大佬亲自教你
  42. 【Vue基础知识总结 5,字节跳动算法工程师面试经验
  43. [Vue, Ali P8 teaches you personally
  44. [Vue basic knowledge summary 5. Interview experience of byte beating Algorithm Engineer
  45. 【问题记录】- 谷歌浏览器 Html生成PDF
  46. [problem record] - PDF generated by Google browser HTML
  47. 【问题记录】- 谷歌浏览器 Html生成PDF
  48. [problem record] - PDF generated by Google browser HTML
  49. 【JavaScript】查漏补缺 —数组中reduce()方法
  50. [JavaScript] leak checking and defect filling - reduce() method in array
  51. 【重识 HTML (3),350道Java面试真题分享
  52. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  53. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  54. [re recognize HTML (3) and share 350 real Java interview questions
  55. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  56. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  57. 【重识 HTML ,nginx面试题阿里
  58. 【重识 HTML (4),ELK原来这么简单
  59. [re recognize HTML, nginx interview questions]
  60. [re recognize HTML (4). Elk is so simple