Javascript代码风格

35 篇文章 5 订阅
订阅专栏

Javascript代码风格

代码必须清晰且尽可能易读。
编程确实为一门艺术——完成一项复杂的任务,以一定方式组织代码实现,既要正确也要易读。
好的代码风格是非常有必要的。

语法

代码风格规则图示:

现在让我们讨论上图中的规则和原因。
没有什么是不能变的,上述内容都是可选的且能改变:因为这是代码风格,不是宗教教条。

大括号

大多数javascript项目大括号写在同一行,不是新的一行,一般称为”埃及“风格,在其实大括号前面有一个空格。
一个情形是单行的IF/FOR。我们是否使用大括号,如果是,在哪?

这里有几个书写方式,所以你能根据自己去看判断可读性:

总结下:
- 确实很短的代码放在一行可以接受:如if(cond) return null
- 但括号里的每条语言单独分为一行通常更好。

行长度

应该限制行最大长度,没有人喜欢看很长的一行代码,最好打断分为多行。

最大的行长度每个团队有自己的规范,通常为80 或 120 字符。

缩进

有两种类型的缩进

  • 水平缩进2或4个空格

水平缩进使用2或4个空格组成,也可以使用”tab“字符。如何选择是一种旧的的圣神战争。空格现在更通用。
空格比TAB的优势是可以更灵活配置缩进。
举例,我们能对其参数到前括号,如下:

    show(parameters,
         aligned, // 5 spaces padding at the left
         one,
         after,
         another
      ) {
      // ...
    }
  • 垂直缩进:使用空行分割代码逻辑块。

即使单个函数能把代码在逻辑上分为块,在下面的示例中,初始化变量,主循环和返回结果也被垂直分割:

    function pow(x, n) {
      let result = 1;
      //              <--
      for (let i = 0; i < n; i++) {
        result *= x;
      }
      //              <--
      return result;
    }

插入额外的新行,可以让代码更易读。一般不应该超过9行代码,都没有一个空行作为垂直缩进。

分号

每行都应该有分号,即使分号有时可以被忽略。
一些语言分号确实是可选的,这很少使用。
但在javascirpt中很少有这种情况,当一个换行符不被解析为分号,这也可能引起编程错误,所以总是加上分号;

嵌套级别

不应该有太多的嵌套级别。
有时可以在循环中直接使用”continue“,减少额外的嵌套if(…)}{…}:

替换下面代码:

    for (let i = 0; i < 10; i++) {
      if (cond) {
        ... // <- one more nesting level
      }
    }

我们可以写成:

    for (let i = 0; i < 10; i++) {
      if (!cond) continue;
      ...  // <- no extra nesting level
    }

类似的可以使用:if/else 和 return .

举例,下面两个结果是一样的。
第一个:

    function pow(x, n) {
      if (n < 0) {
        alert("Negative 'n' not supported");
      } else {
        let result = 1;

        for (let i = 0; i < n; i++) {
          result *= x;
        }

        return result;
      }
    }

另一个:

    function pow(x, n) {
      if (n < 0) {
        alert("Negative 'n' not supported");
        return;
      }

      let result = 1;

      for (let i = 0; i < n; i++) {
        result *= x;
      }

      return result;
    }

但第二个更易读,因为边界情况 n < 0 被首先处理,下面是主代码,没有额外的嵌套。

后置函数声明

如果写几个辅助函数,然后代码中使用他们,有三种代码实现方式。

1.函数在上面,后面调用它们:

    // function declarations
    function createElement() {
      ...
    }

    function setHandler(elem) {
      ...
    }

    function walkAround() {
      ...
    }

    // the code which uses them
    let elem = createElement();
    setHandler(elem);
    walkAround();

2.调用代码在前,然后是函数定义:
// the code which uses the functions
let elem = createElement();
setHandler(elem);
walkAround();

    // --- helper functions ---

    function createElement() {
      ...
    }

    function setHandler(elem) {
      ...
    }

    function walkAround() {
      ...
    }

3.混合方式,函数在第一次调用时定义。

大多数情况,第二种情况被采纳。

因为当读一段代码时,我们首先向知道”它干什么“。如果首先是调用代码,那它提供这样信息,因为我们可能根本不需要读具体函数代码,
特别是当函数名词已经可以足够清楚描述其功能时候。

总结

本节总结所有内容都是为了提升代码的可读性,所有内容都可以探讨的。

JavaScript代码风格
前端御书房
10-14 650
JavaScript代码风格,持续更新中……
js代码风格
qq_33651064的博客
07-15 245
1.标准文档: https://standardjs.com/ 2.js代码中最好不加分号,但有三个地方要注意一下,以( , [ , `开头的情况,需要在前面加个分号。 function say() { console.log('hello world') } // TypeError: say(...) is not a function say() ;(function () { console.log('hello') })() // ;['苹果', '香蕉'].forEach.
JavaScript——编程风格
关注我!带你一路 "狂飙" 到底!
03-04 229
本篇文章我们将讨论如何将新的语法应用在编码实践当中,与传统的 JavaScript 语法结合在一起,写出合理的、易于阅读和维护的代码。 所谓"编程风格",指的是编写代码的规则。不同的程序员,往往有不同的编程风格。而且这里的风格包括语法上的编程风格和格式上的编程风格。 一.块级作用域let 取代 var - 语法上的编程风格 1.ES6 提出了两个新的声明变量的命令:let和const。 其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。 if (true) { le
JavaScript】优良的JS代码应该是什么风格、样式?
码婆Doph
02-01 1904
优良的JS代码应该是什么样式、风格? 1.空白字符 不要混用空格和制表符(空格用" "表示,制表符用"\t"表示)在编码之前,确定好使用 软缩进(空格) 还是 真实的制表符(\t) (推荐将Editor的缩进设置成两个字符) 确保‘显示隐藏字符(show invisibles)’选项可用。如此好处: 强制一致性消除行尾的空白字符消除空行易于识别差异 2.括号、换行符、
看看这些被同事喷的JS代码风格你写过多少
weixin_34378922的博客
11-15 143
作者:殷荣桧@腾讯 目录: 一、变量相关 二、函数相关 三、尽量使用ES6,有可以能的话ES7中新语法   现在写代码比以前好多了,代码的格式都有eslint,prettier,babel(写新版语法)这些来保证,然而,技术手段再高端都不能解决代码可读性(代码能否被未来的自己和同事看懂)的问题,因为这个问题只有人自己才能解决。我们写代码要写到下图中左边这样基本上就功德圆满了。 注:由于个人水平与...
当前流行的JavaScript代码风格指南
10-25
主要介绍了当前流行的JavaScript代码风格指南,同时推荐了一款风格检验工具jshint,可以配合大多数的编辑器统一团队代码风格,需要的朋友可以参考下
Javascript 代码风格指南
11-07
Javascript 代码风格指南
JavaScript代码风格.md
11-10
Airbnb JavaScript Style Guide 简体中文版 用更合理的方式写 JavaScript
Google JavaScript代码风格指南
08-28
JavaScript 代码风格指南,中文版
JavaScript编码风格
阿木木
03-28 348
比起制定什么样的规范,坚持遵守规范重要的多。 为什么要有规范 软件bug的修复极其昂贵,尤其是随着时间的推移,这些bug的成本会成倍增加。因此,无论是为了自己以后维护方便还是为了减少公司的维护成本,书写可维护的代码异常重要。 什么样才是可维护的代码** 1. 可读的 2. 一致的 3. 可预测的 4. 看上去像一个人写的 5. 已记录 如何做 缩进 关于缩...
JavaScript 风格指南
weixin_49035434的博客
04-18 433
变量 使用有意义,可读性好的变量名 使用 ES6 的 const 定义常量 使用易于检索名称 可读性且易于检索非常重要,让你的变量名易于检索 使用说明变量(即有意义的变量名) 不要绕太多的弯子(显式优于隐式) 避免重复的描述 当类/对象名已经有意义时,对其变量进行命名不需要再次重复。 避免无意义的条件判断 【建议】转换成 boolean 时,使用!! 【建议】转换成数字时,使用Number(string) 【建议】转换成字符串时,使用 String(n
Javascript 5种设计风格
06-13 84
1.过程式的程序设计 <script> /*Start and Stop animations using functions.*/ function startAnimation() { //.... } function stopAnimation() { //.... } </script> 2.创建类对象 <...
javascript代码风格指北
weixin_33994444的博客
05-21 87
前言 在我们平时工作中写代码是最频繁的事情了,但我们的代码真的"好看"吗? 预计本文阅读时间(10分钟) 正文 1.1--语句结尾 我们来看一段代码 //合法的代码 var name = "Dreams"; function sayName() { alert(name); } //合法的代码,但不推荐这样写 var name = "Dreams" function sayName() {...
JavaScript 5种代码风格
weixin_34247032的博客
10-14 71
1. 过程式程序设计   这种做法很简单,但你无法创建可以保存状态并具有一些仅对其内部状态进行操作的方法 function startAnimation(){} function stopAnimation(){} 2. 定义一个类,封装这种对象,并使用prototype属性将方法添加至该类 var Anim=function(){}; Anim.prototype.sta...
JavaScript编码风格指南
大灰狼的小绵羊哥哥的博客
06-21 350
前言程序语言的编码风格指南对于一个长期维护的软件而言是非常重要的;好的编程风格有助于写出质量更高、错误更少、更易于 维护的程序。团队合作需要制定一些代码规范还有利用一些工具来强制要求团队代码风格统一.毕竟很多情况下以后不一定是由写一手代码的人来维护代码,所以有一个统一的代码风格很重要!!!最近看了一下编写可维护的JavaScript和编写高质量代码:Web前端开发修炼之道,根据书中提倡的一些写法...
现代 JavaScript 教程 - 代码风格
lentoo的博客
10-08 665
前言我们的代码必须尽可能的清晰和易读。这实际是一种编程艺术 —— 以一种正确并且人类易读的方式编码来完成一个复杂的任务。有一个帮助你(实现上面的目标)的事情就是良好的代码...
javascript代码风格
qq_34412985的博客
12-22 198
[JavaScript Standard Style](https://standardjs.com) Airbnb JavaScript Style  https://github.com/airbnb/javascript/tree/es5-deprecated/es5#types   当无分号代码风格时,当一行代码是以: (    [  ·反引号开头时,在前面补个;(!或~也可以)就不...
JS的编码风格
gzkahjl的博客
09-28 702
来自Airbnb JavaScript Style Guide的学习: 1.命名应具备描述性 // bad function a(){ alert('hello'); } // good function sayHello(){ alert('hello'); } 2.使用驼峰式命名对象、函数和实例 // bad var OBJEcttsssss = {}; var ...
javascript代码格式
最新发布
04-27
JavaScript 代码的格式可以有多种不同的风格,以下是其中一种常见的格式: ```javascript // 单行注释 /* 多行注释 */ ...当然,不同团队和个人有不同的代码风格规范,可以根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • python numpy 中linspace函数 231457
  • 使用R中merge()函数合并数据 167833
  • 介绍java中Pair 156806
  • 使用Spring @DependsOn控制bean加载顺序 118852
  • RestTemplate使用JSON发送Post请求 75263

分类专栏

  • 机器学习 42篇
  • ClickHouse 30篇
  • 图数据库 2篇
  • 时序数据库 1篇
  • java8~9核心功能 96篇
  • Golang 95篇
  • R语言 69篇
  • python 49篇
  • Elasticsearch 50篇
  • PostgreSQL 78篇
  • spring boot 29篇
  • spring 61篇
  • C&C++ 7篇
  • 数据库 105篇
  • kafka 10篇
  • greenplum 9篇
  • 数据结构与算法 6篇
  • spring cloud 4篇
  • linux 3篇
  • 深入理解Javascript 35篇
  • pentaho kettle 深入浅出 27篇
  • web开发 33篇
  • AMQP 2篇
  • pentaho 37篇
  • Apache Camel 1篇
  • TypeScript 2篇
  • groovy 7篇
  • spring data 9篇
  • spring security 实战 11篇
  • spring batch 12篇
  • Spring Security 8篇
  • Spring Shell 1篇
  • 大数据处理 42篇
  • MongoDB 4篇
  • redis 8篇
  • 工具软件 58篇
  • 程序感悟 8篇
  • 设计模式 17篇

最新评论

  • PostgreSQL NUMERIC 数据类型

    猿说新宇: 严格来说,precision是精度,scale是标度。精度即数的有效数字个数,比如,2.5的有效数字个数是2,但是053.2的有效数字个数是3

  • R语言实战Topsis综合评价法

    mxzj1998: 有没有熵权topsis法的代码表情包

  • R实现KMeans聚类算法教程

    qq_46522396: 他说我没有fviz_nbclust这个函数

  • dplyr count 函数

    莫乌木: wt只能设置一个吗

  • R实现KMeans聚类算法教程

    扽等等: 作者大大,这个函数“fviz_gap_stat(gap_stat)”是自己创建的吗?

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 快速搞懂时间序列数据平稳检验
  • 大模型进阶应用——检索增强生成
  • 用大模型增强数据分析应用
2024年3篇
2023年68篇
2022年132篇
2021年135篇
2020年124篇
2019年126篇
2018年98篇
2017年60篇
2016年63篇
2015年32篇
2014年44篇
2013年3篇
2012年4篇
2010年2篇
2009年4篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司襄樊营销网站哪家好四平营销网站多少钱湖州百度关键词包年推广推荐舟山网站建设公司伊春百搜标王多少钱湘潭网站优化排名公司随州百姓网标王推广推荐沧州关键词排名包年推广多少钱临沧关键词按天扣费哪家好惠州百度网站优化报价临沧网站推广方案多少钱兴安盟网站推广方案哪家好深圳网站关键词优化推荐大浪关键词排名包年推广公司大理关键词按天扣费推荐新乡百度标王哪家好观澜SEO按天计费哪家好昭通SEO按效果付费价格菏泽关键词按天收费多少钱曲靖百度网站优化多少钱金昌百度关键词包年推广多少钱百色SEO按天扣费哪家好福永网站优化软件多少钱广州百度seo多少钱吉安百搜标王价格开封seo公司兴安盟至尊标王推荐临猗百度网站优化排名垦利网站优化排名报价哈密英文网站建设推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化