航天员|如何编写高质量 JavaScript 代码( 四 )
// 可扩展匹配值 if (animals.includes(animal)) { // todos function bar(options) { // 可扩展任意参数bar({ gender: \"male\" name: \"james\" age: 36)
第三点:避免副作用
当函数产生了除了“接收一个值并返回一个结果”之外的行为时 , 就产生了副作用 。 副作用不是说一定是有害的 , 但是如果在项目中没有节制的引起副作用 , 代码出错的可能性会非常大 。
建议尽量不要去修改全局变量或可变对象 , 通过参数和return完成需求 。 让函数成为一种纯函数 , 这样也可使代码更容易被测试 。
// badlet fruits = \"Apple Banana\"function splitFruits() { fruits = fruits.split(\" \")function addItemToCart(cart item) { cart.push({ item data: Date.now() )// goodlet fruits = \"Apple Banana\"function splitFruits(fruits) { return fruits.split(\" \")function addItemToCart(cart item) { return [...cart { item data: Date.now()
第四点:整合逻辑关注点
当项目过于复杂的时候 , 经常会把各种逻辑混在一起 , 对后续扩展非常不利 , 而且还影响对代码的理解 。 所以尽量把相关的逻辑抽离到一起 , 进行集中式的管理 。 像React中的hooks , Vue3中的Composition API都是采用这样的思想 。
// badexport default { name: 'App' data(){ return { searchHot: [
searchSuggest: [
searchHistory: [
mounted() { // todo hot // todo history methods: { handleSearchSuggest(){ // todo suggest handleSearchHistory(){ // todo history // goodexport default { name: \"App\" setup() { let { searchHot= useSearchHot() let { searchSuggest handleSearchSuggest= useSearchSuggest() let { searchHistory handleSearchHistory= useSearchHistory() return { searchHot searchSuggest searchHistory handleSearchSuggest handleSearchHistory function useSearchHot() { // todo hotfunction useSearchSuggest() { // todo suggestfunction useSearchHistory() { // todo history
除了以上介绍的四点建议外 , 还有很多可以改善代码健壮性的点 , 如:异常处理、单元测试、使用TS替换JS等等 。
最后总结一下 , 如何编写高质量JavaScript代码:
易阅读的代码高性能的代码健壮性的代码
统一代码格式优化算法使用新语法
去除魔术数字使用内置方法随时可扩展
单一功能原则减少作用域链查找避免副作用
减少嵌套层级避免做重复的代码整合逻辑关注点
有效的注释减少DOM操作异常处理
避免不同类型的比较节流处理单元测试
避免生涩的语法事件委托使用TS替换JS
- 创投圈|抖音小店无货源适合新手小白么?如何精细化运营?新手小白看来
- 社交|腾讯视频为IP编写「价值算法」
- 松下|淘宝店铺信誉分等级如何提升?
- PHP|如何降低用户关注的非必要页面的权重传递?
- 量子纠缠存在于任何维度空间?人类如何逃出三维空间变成“神”?
- 显卡|如何组装旗舰游戏电脑?这里有你想要的答案
- 火星和地球交换位置会如何?火星会出现生命吗?答案没你想得简单
- 快手视频|视频号和抖音快手的差异化在哪里呢?你应该如何选择适合你的平台
- AirPods|如何进行微信活动运营才有效?
- 酷睿处理器|AMD Zen4如何接招?13代酷睿Z790主板偷跑:DDR4内存还在
