真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaScript的魔法值是什么

JavaScript的魔法值是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、寶興網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為寶興等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

JavaScript的魔法值是什么

大家好,我是魚皮,今天通過一件事情,分享寫代碼時的一個重要小技巧。

前段時間,我在編程導(dǎo)航項目中開源了一段代碼,實現(xiàn)的功能是,當用戶的操作失敗時,會在頁面上彈出一個錯誤框,并提示 “操作失敗”,代碼如下:

// 錯誤提示 const ERROR_MESSAGE = "操作失敗";  // 刪除資源 const result = deleteResource();  if(!result) {   alert(ERROR_MESSAGE); }

然而沒想到,有位同學(xué)直接留言說我這么寫代碼是多此一舉!為什么要單獨給 “操作失敗” 這個字符串定義一個常量呢?直接這么寫不就好了:

// 刪除資源 const result = deleteResource();  if(!result) {   alert("操作失敗"); }

似乎代碼變得更精簡了,但其實這是一個常見的編程誤區(qū),魔法值 問題。

魔法值

什么是魔法值呢?聽起來有點像游戲的藍槽 MP 哈哈。

JavaScript的魔法值是什么

其實,魔法值和 MP 一點關(guān)系都沒有!

魔法值指的是代碼中沒有任何定義,直接像魔法一樣憑空出現(xiàn)的值,可以是數(shù)字、字符串等,比如:

// 輸出 console.log(1); // 彈出警告框 alert("dog");

為什么要給這種值一個名號 “魔法值” 呢,因為它對代碼的影響非常惡劣!

魔法值的問題

首先,魔法值會嚴重影響代碼的 可讀性 和 可維護性。

像上面的魔法字符串看起來好像沒什么問題,但如果魔法值是數(shù)字,就必須通過閱讀其他代碼才能推斷出來,比如:

if (a == 1) {   alert("good"); } else if (a == 2) {   alert("bad"); } else if (a == 3) {   ... }

只憑這樣一段代碼,你能知道數(shù)字 1、2、3 分別是什么意思嗎?

有同學(xué)說了,我自己寫的代碼難道還會看不懂么?別急,過一個月你再來閱讀下這段代碼。

如果你的記憶力很好,自己一個做項目的時候追求點效率倒也無所謂了。但要是和其他同學(xué)一起做項目、維護代碼,寫帶有魔法值的代碼無疑會讓他人難以理解,如果再不寫注釋,可能他們連殺了你的心都會有了。

第二,魔法值還會影響開發(fā)的 效率和準確性。

還是拿開頭那段代碼為例,噴我的同學(xué)根本沒有把代碼文件完整讀完,其實在該文件中,我不止一次使用到了 ERROR_MESSAGE 這一常量:

// 錯誤提示 const ERROR_MESSAGE = "操作失敗";  // 刪除資源 const result = deleteResource();  if(!result) {   alert(ERROR_MESSAGE); } // 修改資源 const result = updateResource();  if(!result) {   alert(ERROR_MESSAGE); }  ...

如果像他說的一樣,不去定義常量,而是直接用魔法字符串,那么每次要彈出 “操作失敗”  時,我都要重復(fù)去打這幾個字,浪費時間的同時,還存在打錯字的風(fēng)險。而如果使用預(yù)定義的常量,就能很輕松地利用開發(fā)工具提供的代碼提示和補全功能。

JavaScript的魔法值是什么

代碼補全

此外,魔法值還會影響代碼的 易修改性。

假如說同一個魔法字符串在代碼中多次出現(xiàn),那當我要修改字符串文案時,就要人工一個個地去找到這個字符串進行修改,即使可以用開發(fā)工具提供的搜索和全局替換功能,但也要去檢查一遍,非常麻煩。

alert("你操作失敗了"); alert("你操作失敗了"); alert("你操作失敗了");

而如果將字符串定義為常量,只用在定義處修改它的值即可。此時的常量名,倒像是魔法值的一個指針了。

const ERROR_MESSAGE = "你操作失敗了" alert("ERROR_MESSAGE"); alert("ERROR_MESSAGE"); alert("ERROR_MESSAGE");

解決魔法值

正因為魔法值對代碼有很大的危害,所以各種代碼規(guī)范中,都建議開發(fā)者不要使用魔法值。

解決魔法值的方式很簡單,其實上面已經(jīng)講到了,就是為一系列相同的值定義一個  常量。注意是常量,不是變量!因為魔法值的內(nèi)容一般是固定的,其本身結(jié)構(gòu)不會被修改。

對于一系列的魔法值,建議定義為一個枚舉或單獨的常量類,比如資源有很多審核狀態(tài),可以把所有狀態(tài)集中定義。

JavaScript 代碼:

const REVIEW_STATUS = {   // 待審核   WAITING: 0,   // 通過   PASS: 1,   // 拒絕   REJECT: 2 }

Java 代碼:

public enum ReviewStatus {   WAITING, PASS, REJECT }

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。


文章題目:JavaScript的魔法值是什么
URL地址:http://weahome.cn/article/gicohi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部