1、ES6提出了两个新的声明变量的命令:letconst。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。

2、var命令存在变量提升效用,let命令没有这个问题。建议不再使用var命令,而是使用let命令取代。

3、在letconst之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。 JavaScript 编译器会对const进行优化,所以多使用const,有利于提供程序的运行效率。所有的函数都应该设置为常量。

4、静态字符串一律使用单引号或反引号,不使用双引号。动态字符串使用反引号。

// bad
const a = "foobar";
const b = 'foo' + a + 'bar'; // acceptable
const c = `foobar`; // good
const a = 'foobar';
const b = `foo${a}bar`;
const c = 'foobar';

5、使用数组成员对变量赋值时,优先使用解构赋值。函数的参数如果是对象的成员,优先使用解构赋值。如果函数返回多个值,优先使用对象的解构赋值,而不是数组的解构赋值。这样便于以后添加返回值,以及更改返回值的顺序。

// bad
function getFullName(user) {
const firstName = user.firstName;
const lastName = user.lastName;
} // good
function getFullName(obj) {
const { firstName, lastName } = obj;
} // best
function getFullName({ firstName, lastName }) {
}

6、单行定义的对象,最后一个成员不以逗号结尾。多行定义的对象,最后一个成员以逗号结尾。

如果对象的属性名是动态的,可以在创造对象的时候,使用属性表达式定义。

// bad
const obj = {
id: 5,
name: 'San Francisco',
};
obj[getKey('enabled')] = true; // good
const obj = {
id: 5,
name: 'San Francisco',
[getKey('enabled')]: true,
};

7、使用扩展运算符(...)拷贝数组。

// bad
const len = items.length;
const itemsCopy = [];
let i; for (i = 0; i < len; i++) {
itemsCopy[i] = items[i];
} // good
const itemsCopy = [...items];

8、使用Array.from方法,将类似数组的对象转为数组。

const foo = document.querySelectorAll('.foo');
const nodes = Array.from(foo);

最新文章

  1. ngx_http_uwsgi_module模块.md
  2. ★★★.NET 在meta标签中使用表达式设置页面的关键字
  3. MySql like模糊查询使用详解
  4. ES6入门之set和map
  5. MVC缓存的使用
  6. Android检测是否安装了指定应用
  7. iOS 消息推送原理
  8. asp.net2.0安全性(2)--用户个性化设置(1)--转载来自车老师
  9. 你真的会websocket吗
  10. Windows系统CMD下常用命令
  11. 「Mobile Testing Summit China 2017」第三届中国移动互联网测试开发大会-讲师征集
  12. nginx+php windows安装配置
  13. c# sql 复制表后提示列无效解决办法
  14. A - Excellent Team
  15. Jquery选择器之父节点的子节点
  16. Logstash自带正则表达式
  17. Educational Codeforces Round 23C
  18. package.json和bower的参数解释
  19. 【模板】区间dp
  20. angularJs中的发送请求例子

热门文章

  1. eclipse安装STS遇到的问题
  2. 基于GTK+3 开发远程控制管理软件(C语言实现)系列三 Windows7开发环境搭建
  3. Ubuntu 安装配置最新版 PostgreSQL
  4. 确保线程安全下使用Queue的Enqueue和Dequeue
  5. Android开发艺术探索学习笔记(一)
  6. Android_对android虚拟机的理解,包括内存管理机制垃圾回收机制。dalvik和art区别
  7. vue导出excel数据表格功能
  8. Struts2+AJAX+JQuery 实现用户登入与注册功能。
  9. spring security xml配置详解
  10. Eclipse 下Spring cloud项目集成开发插件Spring Tool Suite (STS) 安装