资讯专栏INFORMATION COLUMN

切图崽的自我修养-[ES6] 编程风格规范

godruoyi / 2574人阅读

摘要:前言没有规矩不成方圆用替换来定义变量如果是常量,使用静态字符串统一用单引号动态拼接成的字符串统一用反引号使用数组成员对变量赋值时,尽量用解构赋值往对象里添加修改属性时,使用,而不用松散的语法面向对象的写法一律写成的形式,摒弃原生的的书写方法

前言

</>复制代码

  1. 没有规矩 不成方圆

let替换var来定义变量. 如果是常量,使用const

静态字符串统一用单引号"" , 动态拼接成的字符串统一用反引号``

</>复制代码

  1. let staticString = "This is a static string";
  2. let d = "dynamic";
  3. let dynamicString = `This is a ${d} string`;

使用数组成员对变量赋值时,尽量用解构赋值

</>复制代码

  1. let arr = [1,2,3,4];
  2. let [arr1,arr2] = arr;
  3. //arr1 =1, arr2 = 2;

往对象里添加/修改属性时,使用Object.assign,而不用松散的.语法

</>复制代码

  1. const objectA = {};
  2. Object.assign(objectA, { attr1: 3 });
  3. //objectA{attr1:3}

面向对象的写法一律写成class的形式,摒弃原生的prototype的书写方法

</>复制代码

  1. class A{
  2. constructor(){}
  3. prototypeFunA(){}
  4. static staticFunA(){}
  5. ...
  6. }

用extends实现单继承, 摒弃原生的prototype链书写方法的继承

</>复制代码

  1. class A{
  2. constructor(){}
  3. prototypeFunA(){}
  4. static staticFunA(){}
  5. ...
  6. }
  7. class B extends A{
  8. constructor(){
  9. super();
  10. }
  11. }
  12. let b = new B();
  13. b.prototypeFunA();
  14. B.staticFunA();

用mixin修饰器的方式可以多继承(es5中可以用call来实现多继承,不过call/apply方法都属于奇技淫巧,不推荐使用了),实际上在js中多继承的应用场景并不多见

模块的书写, 类似CommonJs规范. 暴露方法/属性统一用export

</>复制代码

  1. //moduleA.js
  2. export let name = "Xie Min";
  3. export function fun1(){xxx}
  4. export function fun1(){xxx}
  5. //或者这样写
  6. //moduleA.js
  7. let name = "Xie Min";
  8. function fun1(){xxx}
  9. function fun1(){xxx}
  10. export{
  11. name,
  12. fun1,
  13. fun2,
  14. }

引用模块统一用import,摒弃掉require . 这里特别注意,import模块的时候路径必须写成相对路径的形式, 比如要写成 import {xx} from "./moduleA" 而不是 import {xx} from "moduleA"

</>复制代码

  1. //index.js
  2. import * as moduleA from "./moduleA";
  3. moduleA.name;
  4. moduleA.fun1();
  5. moduleA.fun2();

结语

部分参考自 阮一峰《ECMAScript 6入门》
其他细节待补充

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80212.html

相关文章

  • 切图崽的自我修养-[ES6] 编程风格规范

    摘要:前言没有规矩不成方圆用替换来定义变量如果是常量,使用静态字符串统一用单引号动态拼接成的字符串统一用反引号使用数组成员对变量赋值时,尽量用解构赋值往对象里添加修改属性时,使用,而不用松散的语法面向对象的写法一律写成的形式,摒弃原生的的书写方法 前言 没有规矩 不成方圆 用let替换var来定义变量. 如果是常量,使用const 静态字符串统一用单引号 , 动态拼接成的字符串统一用反...

    Bryan 评论0 收藏0
  • 切图崽的自我修养-[ES6] 编程风格规范

    摘要:前言没有规矩不成方圆用替换来定义变量如果是常量,使用静态字符串统一用单引号动态拼接成的字符串统一用反引号使用数组成员对变量赋值时,尽量用解构赋值往对象里添加修改属性时,使用,而不用松散的语法面向对象的写法一律写成的形式,摒弃原生的的书写方法 前言 没有规矩 不成方圆 用let替换var来定义变量. 如果是常量,使用const 静态字符串统一用单引号 , 动态拼接成的字符串统一用反...

    DoINsiSt 评论0 收藏0
  • 切图崽的自我修养-[ES6] 迭代器Iterator浅析

    摘要:任何数据结构只要部署接口,就可以完成遍历操作即依次处理该数据结构的成员。的遍历某个数据结构过程是这样的比如对进行遍历创建一个指针对象,指向当前数组的起始位置。 Iterator 这真是毅种循环 Iterator不是array,也不是set,不是map, 它不是一个实体,而是一种访问机制,是一个用来访问某个对象的接口规范,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Ite...

    neu 评论0 收藏0
  • 切图崽的自我修养-[ES6] 迭代器Iterator浅析

    摘要:任何数据结构只要部署接口,就可以完成遍历操作即依次处理该数据结构的成员。的遍历某个数据结构过程是这样的比如对进行遍历创建一个指针对象,指向当前数组的起始位置。 Iterator 这真是毅种循环 Iterator不是array,也不是set,不是map, 它不是一个实体,而是一种访问机制,是一个用来访问某个对象的接口规范,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Ite...

    springDevBird 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<