js-ES6学习笔记-编程风格(1)
2024-10-12 09:53:32
1、ES6提出了两个新的声明变量的命令:let
和const
。其中,let
完全可以取代var
,因为两者语义相同,而且let
没有副作用。
2、var
命令存在变量提升效用,let
命令没有这个问题。建议不再使用var
命令,而是使用let
命令取代。
3、在let
和const
之间,建议优先使用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);
最新文章
- ngx_http_uwsgi_module模块.md
- ★★★.NET 在meta标签中使用表达式设置页面的关键字
- MySql like模糊查询使用详解
- ES6入门之set和map
- MVC缓存的使用
- Android检测是否安装了指定应用
- iOS 消息推送原理
- asp.net2.0安全性(2)--用户个性化设置(1)--转载来自车老师
- 你真的会websocket吗
- Windows系统CMD下常用命令
- 「Mobile Testing Summit China 2017」第三届中国移动互联网测试开发大会-讲师征集
- nginx+php windows安装配置
- c# sql 复制表后提示列无效解决办法
- A - Excellent Team
- Jquery选择器之父节点的子节点
- Logstash自带正则表达式
- Educational Codeforces Round 23C
- package.json和bower的参数解释
- 【模板】区间dp
- angularJs中的发送请求例子
热门文章
- eclipse安装STS遇到的问题
- 基于GTK+3 开发远程控制管理软件(C语言实现)系列三 Windows7开发环境搭建
- Ubuntu 安装配置最新版 PostgreSQL
- 确保线程安全下使用Queue的Enqueue和Dequeue
- Android开发艺术探索学习笔记(一)
- Android_对android虚拟机的理解,包括内存管理机制垃圾回收机制。dalvik和art区别
- vue导出excel数据表格功能
- Struts2+AJAX+JQuery 实现用户登入与注册功能。
- spring security xml配置详解
- Eclipse 下Spring cloud项目集成开发插件Spring Tool Suite (STS) 安装