首页 > 代码库 > js-ES6学习笔记-编程风格(1)
js-ES6学习笔记-编程风格(1)
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);
js-ES6学习笔记-编程风格(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。