-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ES6 完全使用手册 #111
Labels
Comments
数组解构:const spliteLocale = locale.splite("-"); splite 应该是split方法? |
非常期待你对React的心得!!! |
等待大佬的react系列~~~ |
支持支持,有没有可以转账的二维码 |
期待React系列阿❤️ |
大佬你好,小弟现在对 Symbol的 魔术字符串 的 使用 还有一些疑惑,疑惑的重点是 如何与 后端的接口数据进行交互,以文章中的代码为例
resource.type 如果是 接口返回的数据,那么应该赋予什么值才能与 TYPE_IMAGE 这样的常量进行匹配呢?当不用Symbol的时候,还有一个字符串来对应,现在这个值 接口是不知道的,该如何处理? |
文章非常棒 |
// good: arguments 转数组
const sortNumbers = (...numbers) => {
console.log(numbers.sort())
}
// [10, 122, "test", "qingcheng"] 转成数组后还排序了,哈哈
sortNumbers(10,'test','qingcheng',122); 这个例子很神奇,学到了 👍 |
awesome! |
这个例子平时有什么用? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
前言
此外还要注意这里不一定就是正式进入规范的语法。
1. let 和 const
在我们开发的时候,可能认为应该默认使用 let 而不是 var,这种情况下,对于需要写保护的变量要使用 const。
然而另一种做法日益普及:默认使用 const,只有当确实需要改变变量的值的时候才使用 let。这是因为大部分的变量的值在初始化后不应再改变,而预料之外的变量的修改是很多 bug 的源头。
2. 模板字符串
1. 模板字符串
需要拼接字符串的时候尽量改成使用模板字符串:
2. 标签模板
可以借助标签模板优化书写方式:
oneLine 的源码可以参考 《ES6 系列之模板字符串》
3. 箭头函数
优先使用箭头函数,不过以下几种情况避免使用:
1. 使用箭头函数定义对象的方法
2. 定义原型方法
3. 作为事件的回调函数
4. Symbol
1. 唯一值
2. 魔术字符串
魔术字符串指的是在代码之中多次出现、与代码形成强耦合的某一个具体的字符串或者数值。
魔术字符串不利于修改和维护,风格良好的代码,应该尽量消除魔术字符串,改由含义清晰的变量代替。
3. 私有变量
Symbol 也可以用于私有变量的实现。
5. Set 和 Map
1. 数组去重
2. 条件语句的优化
6. for of
1. 遍历范围
for...of 循环可以使用的范围包括:
2. 优势
ES2015 引入了 for..of 循环,它结合了 forEach 的简洁性和中断循环的能力:
3. 遍历 Map
7. Promise
1. 基本示例
2. finally
8. Async
1. 代码更加简洁
2. 错误处理
3. "async 地狱"
9. Class
构造函数尽可能使用 Class 的形式
10.Decorator
1. log
log 的实现可以参考 《ES6 系列之我们来聊聊装饰器》
2. autobind
autobind 的实现可以参考 《ES6 系列之我们来聊聊装饰器》
3. debounce
debounce 的实现可以参考 《ES6 系列之我们来聊聊装饰器》
4. React 与 Redux
11. 函数
1. 默认值
12. 拓展运算符
1. arguments 转数组
2. 调用参数
3. 构建对象
剔除部分属性,将剩下的属性构建一个新的对象
有条件的构建对象
合并对象
4. React
将对象全部传入组件
13. 双冒号运算符
如果双冒号左边为空,右边是一个对象的方法,则等于将该方法绑定在该对象上面。
14. 解构赋值
1. 对象的基本解构
2. 对象深度解构
3. 数组解构
4. 变量重命名
5. 仅获取部分属性
15. 增强的对象字面量
动态属性
16. 数组的拓展方法
1. keys
2. entries
3. values
4. includes
5. find
6. findIndex
更多的就不列举了。
17. optional-chaining
举个例子:
同样支持函数:
需要添加 @babel/plugin-proposal-optional-chaining 插件支持
18. logical-assignment-operators
Babel 编译为:
出现的原因:
需要 @babel/plugin-proposal-logical-assignment-operators 插件支持
19. nullish-coalescing-operator
举个例子:
需要 @babel/plugin-proposal-nullish-coalescing-operator 插件支持
20. pipeline-operator
其他
新开了 知乎专栏,大家可以在更多的平台上看到我的文章,欢迎关注哦~
参考
ES6 系列
ES6 系列目录地址:https://github.com/mqyqingfeng/Blog
ES6 系列预计写二十篇左右,旨在加深 ES6 部分知识点的理解,重点讲解块级作用域、标签模板、箭头函数、Symbol、Set、Map 以及 Promise 的模拟实现、模块加载方案、异步处理等内容。
如果有错误或者不严谨的地方,请务必给予指正,十分感谢。如果喜欢或者有所启发,欢迎 star,对作者也是一种鼓励。
The text was updated successfully, but these errors were encountered: