ES6学习笔记(五)—— 编程风格
2024-09-29 22:19:04
1. 块级作用域
- let 取代 var —— let 只在声明的代码块内有效,而且不存在变量提升的效用
- const 取代 let —— const 比较符合函数式编程的思想,运算不改变值,只是新建值;JS 编译器会对 const 进行优化,使用 const 有利于提高程序的运行效率
- 所有的函数都应该设置成为常量
const [a, b, c] = [, , ]
2. 字符串
静态字符串使用单引号或者反引号,动态字符串使用反引号配合 ${ }
const a = 'Monica'
const b = `${a} is my good friend`
3. 解构赋值
使用数组成员对变量赋值时
cosnt [a, b] = [, , , ]
函数的参数是对象的成员
const getInfo = (info) => {
const { name, age } = info
}
const getInfo = ({ name, age }) => {
// ...
}
4. 对象
单行定义的对象,最后一个成员不以逗号结尾。多行定义的对象,最后一个成员以逗号结尾。
const a = { k1: v1, k2: v2 }
const b = {
k1: v1,
k2: v2,
}
对象尽量静态化,一旦定义,就不得随意添加新的属性。如果添加属性不可避免,要使用 Object.assign() 方法。
const info = {}
Object.assign(info, { name: 'wangxi' })
对象的属性和方法,尽量采用简洁表达法,这样易于描述和书写。
const userInfo = {
name,
gender: 'male',
getAge () {
return ''
},
}
5. 数组
使用扩展运算符(...)拷贝数组。
const a = [, , , ]
const b = [...a]
使用 Array.form() 将类数组对象转化为数组。
const infoObj = { name: 'wangxi', age: , length: }
const infoArr = Array.from(infoObj)
6. 函数
立即执行函数写成箭头函数的形式。
(() => {
console.log('I am the best')
})()
使用默认值语法设置函数参数的默认值。
const userInfo = (name = 'wangxi') => {
// ...
}
7. Map 解构
只有模拟现实世界的实体对象时,才使用Object。如果只是需要key: value的数据结构,使用Map结构。
let map = new Map(arr)
Map 方法
- map.keys()
- map.values()
- map.entries()
8. 模块
模块导入使用 import 代替 require。
模块导出使用 export 代替 module.export。
如果模块只有一个输出值,就使用 export default,如果模块有多个输出值,就不使用 export default。
如果模块默认输出一个函数,函数名的首字母应该小写。
const userInfo = () => {
// ...
}
export userInfo const UserInfo = {
// ...
}
export default UserInfo
参考: http://es6.ruanyifeng.com/#docs/style
最新文章
- andrioid 分享到其它(短信,qq,微信等功能)
- 使用XML文件记录操作日志,并从后往前读取操作日志并在richTextBox1控件中显示出来
- js闭包问题
- Android破解之Lic文件加密程序(首例)
- 【HDOJ】1242 Rescue
- JAVA-线程安全性
- Initializer block.
- 实现最小宽度的几种方法及CSS Expression[转]
- NYOJ 299
- MongoDB基础教程系列--第七篇 MongoDB 聚合管道
- android判断网络是否可用
- 【Visual C++】游戏编程学习笔记之九:回合制游戏demo(剑侠客VS巡游天神)
- kettle中文乱码问题
- OpenLayers学习笔记(三)— QML与HTML通信之 地图上点击添加自由文本
- The Minimum Cycle Mean in a Digraph 《有向图中的最小平均权值回路》 Karp
- 安装MySQL和其他包
- Python3-RabbitMQ 3.7.2学习——环境搭建(一)
- NYOJ 1016 判断两线段是否相交
- Java(C#)基础差异-语法
- Java网络编程和NIO详解开篇:Java网络编程基础