七(七):严格模式

// 严格模式应当仅限在函数内部使用,千万不要在全局使用

//不好的写法:全局使用严格模式
"user strict";

function doSomething() {
    //code
}

//好的写法
function doSomething() {
    "user strict";

//code
}

// 如果你期望在多个函数中使用严格模式而不需要多次声明"use strict", 可以使用立
// 即被调用的函数

//好的写法
(function() {
    "user strict";

function doSomething() {
        //code
    }

function doSomethingElse() {
        //code
    }
}());

七(八):赋值

//当给变量赋值时,如果右侧是包含有比较语句的表达式,需要用圆括号包裹

// 好的好法
var flag = (i < count);

//不好的写法:遗漏圆括号
var flag = i < count;

七(九):等号运算符

使用===(严格模式)和!==(严格不相等)代替==(相等)和!=(不等)来避免
弱类型转换错误

//好的好法
var same = (a === b);

//不好的写法:使用==
var same = (a == b);

七(十):三元运算符

//三元运算符应当仅仅用在条件赋值语句中,而不要作为if语句的代替品

//好的写法
var value = condition ?value1 : value2;

//不好的的写法:没有赋值,应当是有if表达式
condition ? doSomething() : doSomethingElse();

七(十一):语句

// 简单语句
// 每一行最多包含一条语句,所有简单的语句都应该以分号(;)结束

//好的写法
count++;
a = b;

//不好的写法:多个表达式写在一行
count++; a = b;

// 返回语句
// 返回语句当返回一个值的时候不应当使用圆括号包裹,除非在某些情况下这么做看
// 以让返回值更容易理解

Example:

return;

return collection.size();

return (size > 0 ? size : defaultSize);

// 复合语句
// 复合语句是大括号括起来的列表 如 if for 等等

// 1.括起来的语句应当较复合语句多缩进一个层级
// 2.开始的大括号应当在复合语句所在行的末尾;结束的大括号应当独占一行且同
// 复合语句的开始保持同样的缩进
// 3.当语句是控制结构的一部分时,诸如:if 或者 for 语句,所有语句都需要用大括
// 号括起来,也包括单个语句。这个约定是的我们更方便地添加语句而不用担心
// 忘记加括号而引起 bug
// 4.像 if 一样的语句开始的关键词,其后应该紧跟一个空格,起始大括号应当在空格之后

// switch 语句
// switch 类的语句应当是如下格式:

switch (expression) {
    case expression:
        statements

default:
        statements
}

// switch 下的每一个 case 都应当保持一个缩进。除第一个之外包括 default 在内的每
// 一个 case 都应当在之前保持一个空行,每一组语句(除了 default)都应当以 break,
// return, throw 结尾,或者用一行注释表示跳过。 如果 default 没有的话,也要加上注释

七(十二):留白

在逻辑相关的代码块之间添加空行可以提高代码的可读性

两行空行仅限在如下情况使用:
1.在不同的源代码文件之间
2.在类和接口定义之间

单行空行仅限在如下情况中使用:
1.方法之间
2.方法中局部变量和第一行语句之间
3,多行或者单行注释之前
4.方法中逻辑代码块之间提升代码的可读性

空格应当在如下情况中使用:
1.关键词后跟括号的情况应当用空格隔开
2.参数列表中逗号之后应保留一个空格
3.所有的除了点之外的二元运算符,其操作都应当用空格隔开。单目
运算符的操作数之间不应该用空格隔开,诸如一元减号,递增++, 递减--
4.for 语句中的表达式之间应用空格隔开

七(十三):需要避免的

1.切勿使用想 Sting 一类的原始包装类型创建新的对象
2.绵绵使用 eval()
3.避免使用 with 语句。该语句在严格模式下不复存在,可能在未来的ECMADScript标准中也将去除

JavaScript编写风格指南 (三)的更多相关文章

  1. JavaScript编写风格指南 (一)

    //参考<编写可维护的Javascript>  一:缩进// 第一行的层级由4个空格组成,避免使用制表符tab进行缩进 //好的写法if (true) {    doSomething() ...

  2. JavaScript编写风格指南 (二)

    七:注释 // 频繁的使用注释有助于他人理解你的代码// 1.代码晦涩难懂// 2.可能被误认为是错误的代码// 3.必要但不明显的针对特定浏览器的代码// 4.对于对象,方法或者属性,生成文档是有必 ...

  3. 13点值得我们注意的谷歌的JavaScript编写风格

    对于编写有效的JavaScript来说,这些并不是硬性的.快速的规则,而只是在源文件中维护一致的.吸引人的样式选择的规则.这对于JavaScript来说尤其有趣,它是一种灵活且多变的语言,允许多种风格 ...

  4. Google JavaScript代码风格指南

    Google JavaScript代码风格指南 修正版本 2.28 Aaron Whyte Bob Jervis Dan Pupius Eric Arvidsson Fritz Schneider R ...

  5. Protocol buffers编写风格指南

    原文链接:https://developers.google.com/protocol-buffers/docs/style Style Guide 本文说明了.proto文件的编写风格指南.遵循这些 ...

  6. JavaScript编码风格指南(中文版)

    前言: 程序语言的编码风格对于一个长期维护的软件非常重要,特别是在团队协作中.如果一个团队使用统一规范的编码分风格,可以提高团队的协作水平和工作效率.编程风格指南的核心是基本的格式化规则,这些规则决定 ...

  7. 《编写可维护的 Javascript》读书笔记(附录 A 部分):Javascript 编码风格指南(1)原始值

    记录一下比较有用的编码规范(该指南是基于 Java 语言编码规范和 Javascript 编程规范,同时结合作者 Nicholos Zakas 的个人经验和喜好). 一些关于格式(包括缩进.行的长度. ...

  8. JavaScript 代码风格指南

    一.基本格式 缩进 建议每级4个空格,可以给编辑器设置tab = 4个空格,自动转换 分号 不要省略分号,防止ASI(自动插入分号)错误 行宽 每行代码不超过80个字符,过长应该用操作符手动断行 断行 ...

  9. JavaScript面向对象编程指南(三) 函数

    第3章 函数 3.1 什么是函数 函数:本质是一种代码的分组形式.函数的声明如下: <script type="text/javascript"> /*函数的声明组成: ...

随机推荐

  1. OpenGL(3)-三角形

    写在前面 从这节开始,会接触到很多基本概念,原书我也是读了很多遍,一遍一遍去理解其中的意思,以及他们之间的关系. 概念 顶点数组对象:VAO 顶点缓冲对象:VBO 索引缓冲对象:EBO|IBO Ope ...

  2. 金蝶盘点机PDA条码数据采集器WMS系统具体有哪些功能

    1.  使用汉码盘点机PDA实现仓库条码管理的好处 (1)  传统电脑管理软件出入库需要来回电脑跑人工手工电脑录单效率低,通过人眼识别商品品种和清点商品数量,容易造成录单错误.从而造成电脑管理软件库存 ...

  3. CDH 5.16.1 离线部署 & 通过 CDH 部署 Hadoop 服务

    参考 Cloudera Enterprise 5.16.x Installing Cloudera Manager, CDH, and Managed Services Installation Pa ...

  4. 机器学习初入门01-numpy的基础用法

    一.numpy基础结构 1. numpy.genformtxt('路径名', delimiter = '分割符', dytype = 读取方式如str ):读取一个文件,返回一个numpy.ndarr ...

  5. mongodb lock 出毛病时解决方法

    错误信息: Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145 解决办法: sudo r ...

  6. Vue 路由详解

    Vue 路由详解 对于前端来说,其实浏览器配合超级连接就很好的实现了路由功能.但是对于单页面应用来说,浏览器和超级连接的跳转方式已经不能适用,所以各大框架纷纷给出了单页面应用的解决路由跳转的方案. V ...

  7. PAT甲题题解-1012. The Best Rank (25)-排序水题

    排序,水题因为最后如果一个学生最好的排名有一样的,输出的课程有个优先级A>C>M>E那么按这个优先级顺序进行排序每次排序前先求当前课程的排名然后再与目前最好的排名比较.更新 至于查询 ...

  8. 浅介MVC与Backbone

    1.MVC是什么东西? MVC (Modal View Controler) 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controll ...

  9. M2 Daily SCRUM要求

    每个人的工作 (有work item 的ID):昨天已完成的工作,今天计划完成的工作:工作中遇到的困难. 燃尽图 照片 每人的代码/文档签入记录(不能每天都在 “研讨”, 但是没有代码签入) 如实报告 ...

  10. 《LINUX内核设计与实现》第三周读书笔记——第一二章

    <Linux内核设计与实现>读书笔记--第一二章 20135301张忻 估算学习时间:共2小时 读书:1.5 代码:0 作业:0 博客:0.5 实际学习时间:共2.5小时 读书:2.0 代 ...