资讯专栏INFORMATION COLUMN

我喜欢的JavaScript编程风格

王岩威 / 1734人阅读

摘要:如果团队成员文件合并,可能会让团队其他成员的代码报错推荐函数内部,即布局作用域内使用相等两个等号判断相等,容易出现强制类型转换推荐使用三个等于号用来判断相等原始包装类型避免使用参考资料编写可维护的

本文为《编写可维护的JavaScript》读书笔记

1、变量

变量名遵守驼峰大小写命名法

命名前缀可为名词,这样可与函数名区分

常量利用大写字母和下划线(用来分隔单词)来命名

所有变量声明放在函数顶部

函数顶部使用单var语句声明变量, 不同变量之间使用 "," 分隔开

2、函数

先声明函数然后使用函数

函数调用写法推荐:

doSomthing(); //在函数名和左括号之间没有空格,与块语句区分开来

立即执行函数

var value = (function(){...})(); //将函数用一对圆括号包裹起来,增强代码的可读性

3、null

适用场景:

初始化变量,它可能赋值为一个对象

用来与已经初始化的变量(可以是也可以不是一个对象)比较

当函数的参数期望是对象时,用作参数传入

函数返回值为对象时,用作返回值传出

不适用场景

不要用null来检测是否传入某个参数

不要用null来检测一个未初始化的变量

4、undefined(被初始化变量的初始值,表示这个变量等待被赋值)

避免使用undefined

变量为声明,可将其赋值为null

5、注释

注释与语句不在同一行时,注释之前需要空行

在同一行,注释和代码之间需要空行

添加注释的原则:

难于理解

代码看上去有错误,实际没有

浏览器特性hack时(例如,原生js绑定事件)

关于注释,推荐使用插件DocBlockr

6、语句

不论块语句包含多行代码还是单行代码,都应当是使用花括号

块语句包括:

if

for

while

do...while

try...catch...finally

块语句间隔风格推荐:

if (condition) {} //在括左圆括号之前和右圆括号之后各添加一个空格

7、case语句的连续执行问题(在switch语句中执行完一个case之后继续执行下一个case):

        switch (condition) {
            case "first":
            case "second":
                //代码
                break;
            default:
                //代码
        }

case连续执行可以有意为之,但是需要添加注释

8、with:禁止使用

9、for循环注意事项:尽可能避免使用continue

10、for-in循环

不仅遍历对象的实例属性,而且遍历从原型继承过来的属性

最好使用 hasOwnProperty 来为for-in循环过滤出实例属性

禁止用来遍历数组成员

11、严格模式

不推荐在全局作用域内使用。如果团队成员文件合并,可能会让团队其他成员的代码报错

推荐函数内部,即布局作用域内使用

12、相等

两个等号判断相等,容易出现强制类型转换

推荐使用三个等于号用来判断相等

13、原始包装类型

 `var name = new String("Nicholas");`

避免使用

参考资料:《编写可维护的JavaScript》

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

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

相关文章

  • JavaScript代码风格要素

    摘要:删除不必要的代码。而简化前的代码包含的语法要素对于传达代码意义本身作用并不大。删除不必要的代码有时候,我们试图为不必要的事物命名。例如,大多数情况下,你应该省略仅仅用来当做返回值的变量。你的函数名应该已经说明了关于函数返回值的信息。 原文地址 本文已在前端早读课公众号首发:【第952期】JavaScript代码风格要素 译者:墨白 校对:野草 1920年,由威廉·斯特伦克(Will...

    YPHP 评论0 收藏0
  • 【译】每个JavaScript 开发者应该了解10个面试题

    摘要:避免脆弱的基类问题。红牌警告没有提到上述任何问题。单向数据流意味着模型是单一的事实来源。单向数据流是确定性的,而双向绑定可能导致更难以遵循和理解的副作用。原文地址 1. 你能说出两种对 JavaScript 应用开发者而言的编程范式吗? 希望听到: 2. 什么是函数编程? 希望听到: 3. 类继承和原型继承的不同? 希望听到 4. 函数式编程和面向对象编程的优缺点? ...

    mykurisu 评论0 收藏0
  • 优秀文章收藏(慢慢消化)持续更新~

    摘要:整理收藏一些优秀的文章及大佬博客留着慢慢学习原文协作规范中文技术文档协作规范阮一峰编程风格凹凸实验室前端代码规范风格指南这一次,彻底弄懂执行机制一次弄懂彻底解决此类面试问题浏览器与的事件循环有何区别笔试题事件循环机制异步编程理解的异步 better-learning 整理收藏一些优秀的文章及大佬博客留着慢慢学习 原文:https://www.ahwgs.cn/youxiuwenzhan...

    JeOam 评论0 收藏0
  • <<编写可维护javascript>> 笔记3(语句和表达式)

    摘要:所有的块语句都应当使用花括号包括花括号的对齐方式第一种风格第二种风格块语句间隔第一种在语句名圆括号和左花括号之间没有空格间隔第二种在左圆括号之前和右圆括号之后各添加一个空格第三种在左圆括号后和右圆括号前各添加一个空格我个人喜欢在右括号之后添 所有的块语句都应当使用花括号, 包括: if for while do...while... try...catch...finally 3....

    OBKoro1 评论0 收藏0
  • 7个 Javascript 面试题及回答策略

    摘要:使用异步编程,有一个事件循环。它作为面向对象编程的替代方案,其中应用状态通常与对象中的方法搭配并共享。在用面向对象编程时遇到不同的组件竞争相同的资源的时候,更是如此。 翻译:疯狂的技术宅原文:https://www.indeed.com/hire/i... 本文首发微信公众号:jingchengyideng欢迎关注,每天都给你推送新鲜的前端技术文章 不管你是面试官还是求职者,里面...

    李义 评论0 收藏0

发表评论

0条评论

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