摘要:代碼無(wú)非是定義一些指令的集合讓計(jì)算機(jī)來(lái)執(zhí)行我們常常將數(shù)據(jù)傳入計(jì)算機(jī)由指令對(duì)數(shù)據(jù)進(jìn)行操作并最終產(chǎn)生一個(gè)結(jié)果當(dāng)不得不修改數(shù)據(jù)時(shí)問(wèn)題就來(lái)了任何時(shí)候你修改源代碼都會(huì)有引入的風(fēng)險(xiǎn)且值修改一些數(shù)據(jù)的值也會(huì)帶來(lái)一些不必要的風(fēng)險(xiǎn)因?yàn)閿?shù)據(jù)時(shí)不應(yīng)當(dāng)影響指令的正
代碼無(wú)非是定義一些指令的集合讓計(jì)算機(jī)來(lái)執(zhí)行. 我們常常將數(shù)據(jù)傳入計(jì)算機(jī), 由指令對(duì)數(shù)據(jù)進(jìn)行操作, 并最終產(chǎn)生一個(gè)結(jié)果. 當(dāng)不得不修改數(shù)據(jù)時(shí)問(wèn)題就來(lái)了. 任何時(shí)候你修改源代碼都會(huì)有引入bug的風(fēng)險(xiǎn), 且值修改一些數(shù)據(jù)的值也會(huì)帶來(lái)一些不必要的風(fēng)險(xiǎn), 因?yàn)閿?shù)據(jù)時(shí)不應(yīng)當(dāng)影響指令的正常運(yùn)行的. 精心設(shè)計(jì)的應(yīng)用應(yīng)當(dāng)將關(guān)鍵數(shù)據(jù)從主要的源碼中抽離出來(lái), 這樣我們修改源碼時(shí)才更加放心.
9.1 什么是配置數(shù)據(jù)
配置數(shù)據(jù)是應(yīng)用中寫(xiě)死的值.
// 配置參數(shù)埋藏在代碼中 function validate(value) { if(!value) { alert("非法的值"); location.href = "/errors/invalid.php"; } } function toggleSelected(element) { if(hasClass(element, "selected")) { removeClass(element, "selected"); }else { addClass(element, "selected"); } }
這段代碼中有三個(gè)配置數(shù)據(jù)片段. 第一個(gè)是字符串 "非法的值", 這個(gè)值是給用戶(hù)提示的. 所以它可能會(huì)被頻繁修改. 第二個(gè)是URL"/errors/incalid.php". 當(dāng)架構(gòu)變更時(shí)則可能頻繁修改. 第三個(gè)是CSS的類(lèi)名"selected". 有三處都用到了className, 這意味著要修改這個(gè)類(lèi)名要修改三處代碼. 很可能不小心丟掉了某處.
URL
需要展現(xiàn)給用戶(hù)的字符串
重復(fù)的值
設(shè)置 (比如每頁(yè)的配置項(xiàng))
任何可能發(fā)生變更的值
配置數(shù)據(jù)時(shí)可發(fā)生變更的, 而且你不希望有人要改展示信息而去修改源碼.
9.2 抽離配置數(shù)據(jù)
將配置參數(shù)從代碼中抽離出來(lái).
// 將配置參數(shù)抽離出來(lái) var config = { MSE_VALUE: "非法的值", URL_INVALID: "/errors/invalid.php", CSS_SELECTED: "selected" } function validate(value) { if(!value) { alert(config.MSG_VALUE); location.href = config.URL_INVALID; } } function toggleSelected(element) { if(hasClass(element, config.CSS_SELECTED)) { removeClass(element, config.CSS_SELECTED); }else { addClass(element, config.CSS_SELECTED); } }
這樣修改它們就不會(huì)導(dǎo)致代碼出錯(cuò)
9.3 保存配置數(shù)據(jù)
配置數(shù)據(jù)最好多帶帶在一個(gè)文件中. 這樣代碼清晰很多.
有很多方式, 不用js用別的語(yǔ)言要轉(zhuǎn)化為js識(shí)別語(yǔ)言.
JSON
JSONP
純JavaScript
有很多模塊導(dǎo)入方法import等等
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92739.html
摘要:由于第四章太稀松平常了于是就直接跳到第五章了這里我就草草的說(shuō)一下第四章的幾個(gè)點(diǎn)吧在嚴(yán)格模式的應(yīng)用下不推薦將用在全局作用域中相等推薦盡量使用和守則如果是在沒(méi)有別的方法來(lái)完成當(dāng)前任務(wù)這時(shí)可以使用原始包裝類(lèi)型不推薦創(chuàng)建類(lèi)型時(shí)用等創(chuàng)建類(lèi)型從這一章節(jié) 由于第四章太稀松平常了, 于是就直接跳到第五章了.這里我就草草的說(shuō)一下第四章的幾個(gè)點(diǎn)吧 在嚴(yán)格模式的應(yīng)用下 不推薦將use strict;用在全...
摘要:在所有應(yīng)用中事件處理都是非常重要的所有的均通過(guò)事件綁定到上所以大多數(shù)前端工程師需要花費(fèi)很多時(shí)間來(lái)編寫(xiě)和修改事件處理程序遺憾的是在誕生之初這部分內(nèi)容并未受太多重視甚至當(dāng)開(kāi)發(fā)者們開(kāi)始熱衷于將傳統(tǒng)的軟件架構(gòu)概念融入到里時(shí)事件綁定仍然沒(méi)有收到多大重 在所有JavaScript應(yīng)用中事件處理都是非常重要的. 所有的JavaScript均通過(guò)事件綁定到UI上, 所以大多數(shù)前端工程師需要花費(fèi)很多時(shí)間...
摘要:首先,巧妙的使用這一標(biāo)記,將游覽器從所有情況中分離出來(lái)。接著,再次使用將和分離開(kāi)來(lái),這樣已經(jīng)獨(dú)立識(shí)別。元素不能用作語(yǔ)義用途以外的其他目的。Html1、Html5有哪些新特性,移除了哪些元素?如何處理HTML5新標(biāo)簽的瀏覽器兼容問(wèn)題?如何區(qū)別HTML和HTML5?HTML5 現(xiàn)在已經(jīng)不是 SGML 的子集,主要是關(guān)于圖像,位置,存儲(chǔ),多任務(wù)等功能的增加。拖拽釋放(Drag and drop) ...
摘要:程序是寫(xiě)給人讀的只是偶爾讓計(jì)算機(jī)執(zhí)行一下當(dāng)你剛剛組建一個(gè)團(tuán)隊(duì)時(shí)團(tuán)隊(duì)中的每個(gè)人都各自有一套編程習(xí)慣畢竟每個(gè)成員都有著不同的背景有些人可能來(lái)自某個(gè)皮包公司身兼數(shù)職在公司里面什么事都做還有些人會(huì)來(lái)自不同的團(tuán)隊(duì)對(duì)某種特定的做事風(fēng)格情有獨(dú)鐘或恨之入骨 程序是寫(xiě)給人讀的,只是偶爾讓計(jì)算機(jī)執(zhí)行一下. Donald Knuth 當(dāng)你剛剛組建一個(gè)團(tuán)隊(duì)時(shí),團(tuán)隊(duì)中的每個(gè)人都各自有一套編程習(xí)慣.畢竟,...
摘要:所有的塊語(yǔ)句都應(yīng)當(dāng)使用花括號(hào)包括花括號(hào)的對(duì)齊方式第一種風(fēng)格第二種風(fēng)格塊語(yǔ)句間隔第一種在語(yǔ)句名圓括號(hào)和左花括號(hào)之間沒(méi)有空格間隔第二種在左圓括號(hào)之前和右圓括號(hào)之后各添加一個(gè)空格第三種在左圓括號(hào)后和右圓括號(hào)前各添加一個(gè)空格我個(gè)人喜歡在右括號(hào)之后添 所有的塊語(yǔ)句都應(yīng)當(dāng)使用花括號(hào), 包括: if for while do...while... try...catch...finally 3....
閱讀 1213·2021-10-11 10:59
閱讀 1996·2021-09-29 09:44
閱讀 886·2021-09-01 10:32
閱讀 1457·2019-08-30 14:21
閱讀 1899·2019-08-29 15:39
閱讀 3001·2019-08-29 13:45
閱讀 3561·2019-08-29 13:27
閱讀 2032·2019-08-29 12:27