摘要:前言同樣一個功能,可以用很多方法來實現(xiàn),有時候由于項目時間緊張,導(dǎo)致很多時候只是實現(xiàn)了功能,往往忽視了代碼質(zhì)量。下面幾種代碼重構(gòu)方法,以便大家可以寫出更優(yōu)雅的代碼。
前言
同樣一個功能,可以用很多方法來實現(xiàn),有時候由于項目時間緊張,導(dǎo)致很多時候只是實現(xiàn)了功能,往往忽視了代碼質(zhì)量。下面幾種代碼重構(gòu)方法,以便大家可以寫出更優(yōu)雅的代碼。
一,提煉函數(shù)
var getUserInfo = function(){ ajax( "http:// xxx.com/userInfo", function( data ){ console.log( "userId: " + data.userId ); console.log( "userName: " + data.userName ); console.log( "nickName: " + data.nickName ); }) }) // 重構(gòu)后 var getUserInfo = function(){ ajax( "http:// xxx.com/userInfo", function( data ){ printDetails( data ); }); }; var printDetails = function( data ){ console.log( "userId: " + data.userId ); console.log( "userName: " + data.userName ); console.log( "nickName: " + data.nickName ); };
二,合并重復(fù)的條件片段
var paging = function( currPage ){ if ( currPage <= 0 ){ currPage = 0; jump( currPage ); }else if ( currPage >= totalPage ){ currPage = totalPage; jump( currPage ); }else{ jump( currPage ); } } // 重構(gòu)后,把重復(fù)函數(shù)獨立出來 var paging = function( currPage ){ if ( currPage <= 0 ){ currPage = 0; }else if ( currPage >= totalPage ){ currPage = totalPage; } jump( currPage ); };
三,把條件分支語句提煉成函數(shù)
var getPrice = function( price ){ var date = new Date(); if ( date.getMonth() >= 6 && date.getMonth() <= 9 ){ return price * 0.8; } return price; }; // 重構(gòu)后,改成能夠理解的函數(shù) var isSummer = function(){ var date = new Date(); return date.getMonth() >= 6 && date.getMonth() <= 9; }; var getPrice = function( price ){ if ( isSummer() ){ return price * 0.8; } return price; };
四,合理使用循環(huán)
五,提前讓函數(shù)退出代替嵌套條件分支
點擊更多
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88546.html
摘要:模塊化是隨著前端技術(shù)的發(fā)展,前端代碼爆炸式增長后,工程化所采取的必然措施。目前模塊化的思想分為和。特別指出,事件不等同于異步,回調(diào)也不等同于異步。將會討論安全的類型檢測惰性載入函數(shù)凍結(jié)對象定時器等話題。 Vue.js 前后端同構(gòu)方案之準備篇——代碼優(yōu)化 目前 Vue.js 的火爆不亞于當(dāng)初的 React,本人對寫代碼有潔癖,代碼也是藝術(shù)。此篇是準備篇,工欲善其事,必先利其器。我們先在代...
摘要:畢竟,我們還將在接下來的開發(fā)之旅中使用其他框架開發(fā)者編寫的輔助包。缺乏行業(yè)標準必然意味著,框架中的這些組件高度耦合。如果你嘗試對這個類進行單元測試,會發(fā)現(xiàn)根本不可行。在做單元測試的時候,我們可以很好地模擬數(shù)據(jù)庫連接,并將其傳入使用。 showImg(https://segmentfault.com/img/remote/1460000014180802); 我為你們準備了一個富有挑戰(zhàn)性...
摘要:格式化安裝插件如果題主認真讀了的的話,應(yīng)該可以寫出下面的配置了。用來格式化和提示格式錯誤。在編碼過程中提示格式錯誤,養(yǎng)成良好的編碼習(xí)慣。 前言 感覺搭建一個舒服的前端開發(fā)環(huán)境,十分的重要定制化的格式化,編輯器自帶的格式化各種報錯,手動改真的會死人,因此搭建一個編輯器環(huán)境必不可少,現(xiàn)在要講的是vscode中如何定制vue vs code的配置文件: showImg(https://seg...
摘要:詳情行人臉識別庫是僅行代碼的人臉識別庫,最小只有。詳情開發(fā)大型應(yīng)用這是根據(jù)上發(fā)表的演講整理的文章,分享了作者在開發(fā)大型應(yīng)用后的一些心得。詳情每周一同步更新到歡迎 1. Node.js 10 將帶來什么? Node.js 10 的第一個版本將于本周二(4 月 24 日)發(fā)布,并將在 10 月份推出 LTS 版本,將帶來哪些更新? N-API,持續(xù) HTTP/2 支持,ECMAScript...
摘要:詳情行人臉識別庫是僅行代碼的人臉識別庫,最小只有。詳情開發(fā)大型應(yīng)用這是根據(jù)上發(fā)表的演講整理的文章,分享了作者在開發(fā)大型應(yīng)用后的一些心得。詳情每周一同步更新到歡迎 1. Node.js 10 將帶來什么? Node.js 10 的第一個版本將于本周二(4 月 24 日)發(fā)布,并將在 10 月份推出 LTS 版本,將帶來哪些更新? N-API,持續(xù) HTTP/2 支持,ECMAScript...
閱讀 2668·2021-11-24 10:44
閱讀 1928·2021-11-22 13:53
閱讀 1952·2021-09-30 09:47
閱讀 3713·2021-09-22 16:00
閱讀 2444·2021-09-08 09:36
閱讀 2323·2019-08-30 15:53
閱讀 2798·2019-08-30 15:48
閱讀 996·2019-08-30 15:44