1.块级作用域1.1。let代替var,let可以完全代替var,因为两者语义相同,而且let没有副作用:var会注册全局变量;var会有变量提升;1.2。在let和const之间,先用const。原因:const可以提醒别人这个变量不应该被改变;const符合函数式编程的思想,操作不改变值,只是创建一个新值;Javascript编译器会优化const,效率更高;2.字符串2.1。静态字符所有字符串都使用单引号,而不是双引号。consta='足球';2.2.始终对动态字符串使用反引号(字符串连接)。consta=`foot${ballName}`3.结构赋值3.1.使用数组成员时,优先使用解构赋值:constarr=[1,2,3,4];const[第一,第二]=arr;3.2.如果函数参数是一个对象,优先解构赋值://goodfunctiongetFullName(obj){const{firstname,lastname}=obj;}//bestfunctiongetFullName({firstname,lastname}){}3.3.函数返回的结果优先对象解构赋值,避免数组解构赋值:functiongetFullName(){return{firstname,lastname};}4.对象4.1.对于单行定义的对象,最后一个成员不应该有逗号;对于多行定义的对象,最后一个成员应该有一个逗号:consta={a:1,b:2};consta={a:1,b:2,}4.2。尽量使对象静态化(非强制),如果需要添加新的属性,使用Object.assign方法:consta={a:1};Object.assign(a,{b:2});4.3.如果属性名是动态的,创建时使用属性表达式定义:consta={a:1,b:2,[getName()]:true,};4.4。对象的定义应该尽可能简洁:consta={a,b,getName(){return'hello';},};5。数组5.1。使用展开运算符(...)复制一个数组:constitems=[1,2,3];constmyCopy=[...项目];5.2.使用Array.from方法将类数组对象转换为数组:consta={0:'hi',1:'hello'};constb=Array.from(a);6.功能6.1.立即执行函数写成箭头函数:(()=>{console.log('Hello');})();6.2。使用函数表达式时,使用箭头函数(带{}体的箭头函数,参数必须有括号;否则没有括号)://good[1,2,3].map((x)=>{returnx+1;});//最佳[1,2,3].map(x=>x+1);6.3.箭头函数不应再使用self、_this、that来绑定此对象://badconstthat/_this/self=this;6.4.不再使用arguments参数集合,改用扩展运算符(...):functionmyFunc(...args){returnargs.join('');}6.5。定义参数时,设置默认参数值:functionmyFunc(name,sex='female',skills={},{option=false}={}){//...}7.Map结构7.1.如果只需要一个key:value数据结构,推荐使用Map,因为Map有更好的遍历机制:letmap=newMap(arr);for(letkeyofmap.keys()){console.log(key);}for(letvalueofmap.values()){console.log(value);}for(let[key,value]ofmap.entries()){console.log(key,value);}8.Class8.1。始终使用Class而不是原型Operation因为Class写得更简洁,更容易理解。//Class的用法这里就不详细介绍了,大家可以自行查看。9.模块9.1。Module是JS模块的标准编写方式,所以你应该坚持下去。使用import而不是require://badconstmoduleA=require('moduleA');constfunc1=moduleA.func1;constfunc2=moduleA.func2;//goodimport{func1,func2}from'moduleA';9.2.使用export而不是modules.exports//badmodule.exports=Breadcrumbs;//goodexportdefaultBeadcrumbs;9.3.如果模块只有一个输出值,使用exportdefault;如果有多个输出值,不要使用exportdefault;9.4.不要在模块输入中使用通配符,因为这可以确保模块中有默认输出(exportdefault)。//badimport*asmyObject'./importModule';//goodimportmyObjectfrom'./importModule';10.Eslint规范ESLint是语法规则和代码风格的检查工具。可以保证写出的语法正确,风格统一。vue-cli的脚手架集成了eslint,安装了Airbnb的语法风格。请使用您自己的编辑器配置根目录下的.eslintrc.js文件。如果遇到烦人的规范,可以在这个文件中适当配置个性化风格。此外,package.json中还有lint命令来检查代码规范。
