JS弱类型语言的优势——之模板字符串
ES6中,开始支持模板字符串。
尽管Java和C#这样的高级语言有非常多吸引人的地方,但是想js这样的弱类型语言,也有独到之处。
equType:有四种类型,分别是:chl、chwp、cwp、cot,后端java接口提供了四个接口,四个接口对应四个函数调用,每一个函数名的规则是[equType]Control,
let equDetailService = {*/ chlControl: function(params) { return request.post(url.coldStation.equDetail.chlControl, params); }, //冷冻泵启停接口 chwpControl: function(params) { return request.post(url.coldStation.equDetail.chwpControl, params); }, //冷却泵启停接口 cwpControl: function(params) { return request.post(url.coldStation.equDetail.cwpControl, params); }, //冷却塔启停接口 cotControl: function(params) { return request.post(url.coldStation.equDetail.cotControl, params); } };
前端同一个组件在四个不同的页面中使用,组件对应的equType值不同,根据equType值不同要调用后端不同的接口。
axios的js调用:
equDetailService[`${this.equType}Control`](serachObj).then(res => { if (res.code === 200) { //执行成功 } });
后端一个详情页面的接口返回一个Json对象,如下数据:
detailInfo:{G1_COT1_ON/OFF: "0.0", G1_COT1_VFD_ON/OFF: "1.0", G1_COT1_FRQ: "30.0", G1_COT1_FRQ_SET: "50.0", G1_COT1_PWR: "5.0", G1_COT1_PWR_deviceId: 95 G1_COT1_VFD_PWR: "5.0", G1_COT1_VFD_PWR_deviceId: 95 G1_COT1_VFD_ALM: "0.0", G1_COT1_PWR_ALM: "0.0", G1_COT1_PWR_ALM_deviceId: 95, G1_COT1_REM/LOC: "1.0", G1_COT1_HRS: "5300.0", G1_COT1_EN/DIS: "1.0", G1_COT1_RANK: "0.0", G1_COT1_PWR_FRQ: "0.0", G1_COT1_PWR_FRQ_deviceId: 95, G1_COT1_FRQ_HAND/AUTO: "0.0", G1_COT2_ON/OFF: "0.0", G1_COT2_VFD_ON/OFF: "1.0", G1_COT2_FRQ: "30.0", G1_COT2_FRQ_SET: "50.0", G1_COT2_PWR: "5.0", G1_COT2_PWR_deviceId: 96, G1_COT2_VFD_PWR: "5.0", G1_COT2_VFD_PWR_deviceId: 96, G1_COT2_VFD_ALM: "0.0", G1_COT2_PWR_ALM: "0.0", G1_COT2_PWR_ALM_deviceId: 96, G1_COT2_REM/LOC: "1.0", G1_COT2_HRS: "5437.0", G1_COT2_EN/DIS: "1.0", G1_COT2_RANK: "0.0", G1_COT2_PWR_FRQ: "--", G1_COT2_PWR_FRQ_deviceId: 96, G1_COT2_FRQ_HAND/AUTO: "0.0", G1_COT3_ON/OFF: "0.0", G1_COT3_VFD_ON/OFF: "1.0", G1_COT3_FRQ: "30.0", G1_COT3_FRQ_SET: "50.0", G1_COT3_PWR: "5.0", G1_COT3_PWR_deviceId: 97, G1_COT3_VFD_PWR: "5.0", G1_COT3_VFD_PWR_deviceId: 97, G1_COT3_VFD_ALM: "0.0", G1_COT3_PWR_ALM: "0.0", G1_COT3_PWR_ALM_deviceId: 97, G1_COT3_REM/LOC: "1.0", G1_COT3_HRS: "5436.0", G1_COT3_EN/DIS: "1.0", G1_COT3_RANK: "0.0", G1_COT3_PWR_FRQ: "--", G1_COT3_PWR_FRQ_deviceId: 97, G1_COT3_FRQ_HAND/AUTO: "1.0",
}
G1是组名,groupNumber会变化,
而前端又是一个组件,好几个页面用,只调用一个接口,接口返回的是个Json对象,而不是一个数组,但是前端界面又要显示三个tab,进行数据绑定时,又可以用到模板字符,以取G1_COT1_FRQ_SET这个字符为例,vue数据绑定:
{{detailInfo[`${groupNumber}_COT${index+1}_FRQ_SET`]}}
直接可以把detailInfo中的数据拆分为3项。
Java有的语法糖,JS有,Java没有的语法糖,JS还是有,这就是它的强大之处。
总结:模板字符在有些时候可以避免if else和正则表达式校验,类似于后端语言的反射(如C#)。注:一些高级语言的反射非常耗性能。
博客地址: | http://www.cnblogs.com/jiekzou/ | |
博客版权: | 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。 如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。 |
|
其它: |
.net-QQ群4:612347965
java-QQ群:805741535
H5-QQ群:773766020 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2015-04-01 Lucene.net站内搜索—6、站内搜索第二版