如何使JavaScript 代码库变干净
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章给大家介绍如何使JavaScript 代码库变干净,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、使用默认参数代替短路或条件默认参数通常比短路更干净。function
千家信息网最后更新 2025年11月07日如何使JavaScript 代码库变干净
这篇文章给大家介绍如何使JavaScript 代码库变干净,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
1、使用默认参数代替短路或条件
默认参数通常比短路更干净。
function SomeMethod(paramThatCanBeUndefined) {
const localValue = paramThatCanBeUndefined || "Default Value"; console.log(localValue) // ...}SomeMethod() // Default ValueSomeMethod("SomeValue") // SomeValue尝试以下方法:
function SomeMethod( console.log(paramThatCanBeUndefined) // ...}SomeMethod() // Default ValueSomeMethod("SomeValue") // SomeValue声明:Falsy值,如'',"",false,null,0,和NaN将不会被默认值替代:
function SomeMethod(paramThatCanBeUndefined = "Default Value") { console.log(paramThatCanBeUndefined) // ...}SomeMethod(null) // will not Default Value, will null InsteadSomeMethod("SomeValue") // SomeValue2、处理多个条件
const conditions = ["Condition 2","Condition String2"];someFunction(str){ if(str.includes("someValue1") || str.includes("someValue2")){ return true }else{ return false }}一种更干净的方法是:
someFunction(str){ const conditions = ["someValue1","someValue2"]; return conditions.some(condition=>str.includes(condition));}3、用动态键值对替换开关(即对象文字)
开关版本(或将开关替换为if / else):
const UserRole = { ADMIN: "Admin", GENERAL_USER: "GeneralUser", SUPER_ADMIN: "SuperAdmin",};function getRoute(userRole = "default role"){ switch(userRole){ case UserRole.ADMIN: return "/admin" case UserRole.GENERAL_USER: return "/GENERAL_USER" case UserRole.SUPER_ADMIN: return "/superadmin" default: return "/" }}console.log(getRoute(UserRole.ADMIN)) // return "/admin"console.log(getRoute("Anything")) // return Default pathconsole.log(getRoute()) // return Default pathconsole.log(getRoute(null)) // return Default path// More cases if new arrive// You can think if else instead of switch动态键值对版本:
const UserRole = { ADMIN: "Admin", GENERAL_USER: "GeneralUser", SUPER_ADMIN: "SuperAdmin",};function getRoute(userRole = "default role"){ const appRoute = { [UserRole.ADMIN]: "/admin", [UserRole.GENERAL_USER]: "/user", [UserRole.SUPER_ADMIN]: "/superadmin" }; return appRoute[userRole] || "Default path";}console.log(getRoute(UserRole.ADMIN)) // return "/admin"console.log(getRoute("Anything")) // return Default pathconsole.log(getRoute()) // return Default pathconsole.log(getRoute(null)) // return Default path// No more switch/if-else here.// Easy to Further expansion4、避免过多的函数参数
function myFunction(employeeName,jobTitle,yrExp,majorExp){ return `${employeeName} is working as ${jobTitle} with ${yrExp} years of experience in ${majorExp}`}//output be like John is working as Project Manager with 12 year of experience in Project Management// you can call it viaconsole.log(myFunction("John","Project Manager",12,"Project Management"))// ***** PROBLEMS ARE *****// Violation of 'clean code' principle// Parameter sequencing is important// Unused Params warning if not used// Testing need to consider a lot of edge cases.这是一种更清洁的方法:
function myFunction({employeeName,jobTitle,yrExp,majorExp}){ return `${employeeName} is working as ${jobTitle} with ${yrExp} years of experience in ${majorExp}`}//output be like John is working as Project Manager with 12 year of experience in Project Management// you can call it viaconst mockTechPeople = { employeeName:"John", jobTitle:"Project Manager", yrExp:12, majorExp:"Project Management"}console.log(myFunction(mockTechPeople))// ES2015/ES6 destructuring syntax is in action// map your desired value to variable you need.5、使用Object.assign设置默认对象
这看起来很繁琐:
const someObject = { title: null, subTitle: "Subtitle", buttonColor: null, disabled: true};function createOption(someObject) { someObject.title = someObject.title || "Default Title"; someObject.subTitle = someObject.subTitle || "Default Subtitle"; someObject.buttonColor = someObject.buttonColor || "blue"; someObject.disabled = someObject.disabled !== undefined ? someObject.disabled : true; return someObject}console.log(createOption(someObject));// Output be like // {title: 'Default Title', subTitle: 'Subtitle', buttonColor: 'blue', disabled: true}这种方法看起来更好:
const someObject = { title: null, subTitle: "Subtitle", buttonColor: null, disabled: true }; function creteOption(someObject) { const newObject = Object.assign({ title: "Default Title", subTitle: "Default Subtitle", buttonColor: "blue", disabled: true },someObject) return newObject } console.log(creteOption(someObject));关于如何使JavaScript 代码库变干净就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
干净
方法
参数
代码
内容
动态
对象
更多
条件
版本
帮助
不错
繁琐
兴趣
函数
多个
小伙
小伙伴
文字
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库中蕴含的思政元素
网络安全培训中心二期
数据库系统中的软件平台
美国儿童网络安全
适合学生做的网络安全实验
两会期的人行网络安全保障
服务器上架后管理口登不进
ac管理服务器怎样收费
用jq链接数据库做增删改查
ice服务器的由来
国家网络安全宣传周的新闻
苹果电脑个人数据库软件
数据库文档模型的优缺点
江西省网络安全招聘
郑州软件开发驻场平台
专科计算机网络技术的前景
网络安全龙头股票一览表2021
lol登录不上去查询服务器
成都大图网络技术招聘
网络技术工程师入门
应用程序用什么软件开发
不履行网络安全保护
ui设计需要哪些软件开发
揭阳定制软件开发
计算机网络技术群名
大数据云数据库厂商及其代表产品
台州华顶网络技术有限公司
苏州畅影网络技术有限公司
软件开发转美工
彩虹六号围攻连不上服务器