返回顶部
首页 > 资讯 > 前端开发 > html >JavaScript的魔法值是什么
  • 512
分享到

JavaScript的魔法值是什么

2024-04-02 19:04:59 512人浏览 安东尼
摘要

javascript的魔法值是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。大家好,我是鱼皮,今天通过一件事情,分享写代码

javascript的魔法值是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

JavaScript的魔法值是什么

大家好,我是鱼皮,今天通过一件事情,分享写代码时的一个重要小技巧。

前段时间,我在编程导航项目开源了一段代码,实现的功能是,当用户的操作失败时,会在页面上弹出一个错误框,并提示 “操作失败”,代码如下:

// 错误提示 const ERROR_MESSAGE = "操作失败";  // 删除资源 const result = deleteResource();  if(!result) {   alert(ERROR_MESSAGE); }

然而没想到,有位同学直接留言说我这么写代码是多此一举!为什么要单独给 “操作失败” 这个字符串定义一个常量呢?直接这么写不就好了:

// 删除资源 const result = deleteResource();  if(!result) {   alert("操作失败"); }

似乎代码变得更精简了,但其实这是一个常见的编程误区,魔法值 问题。

魔法值

什么是魔法值呢?听起来有点像游戏的蓝槽 MP 哈哈。

JavaScript的魔法值是什么

其实,魔法值和 MP 一点关系都没有!

魔法值指的是代码中没有任何定义,直接像魔法一样凭空出现的值,可以是数字、字符串等,比如:

// 输出 console.log(1); // 弹出警告框 alert("dog");

为什么要给这种值一个名号 “魔法值” 呢,因为它对代码的影响非常恶劣!

魔法值的问题

首先,魔法值会严重影响代码的 可读性 和 可维护性。

像上面的魔法字符串看起来好像没什么问题,但如果魔法值是数字,就必须通过阅读其他代码才能推断出来,比如:

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

只凭这样一段代码,你能知道数字 1、2、3 分别是什么意思吗?

有同学说了,我自己写的代码难道还会看不懂么?别急,过一个月你再来阅读下这段代码。

如果你的记忆力很好,自己一个做项目的时候追求点效率倒也无所谓了。但要是和其他同学一起做项目、维护代码,写带有魔法值的代码无疑会让他人难以理解,如果再不写注释,可能他们连杀了你的心都会有了。

第二,魔法值还会影响开发的 效率和准确性。

还是拿开头那段代码为例,喷我的同学根本没有把代码文件完整读完,其实在该文件中,我不止一次使用到了 ERROR_MESSAGE 这一常量:

// 错误提示 const ERROR_MESSAGE = "操作失败";  // 删除资源 const result = deleteResource();  if(!result) {   alert(ERROR_MESSAGE); } // 修改资源 const result = updateResource();  if(!result) {   alert(ERROR_MESSAGE); }  ...

如果像他说的一样,不去定义常量,而是直接用魔法字符串,那么每次要弹出 “操作失败”  时,我都要重复去打这几个字,浪费时间的同时,还存在打错字的风险。而如果使用预定义的常量,就能很轻松地利用开发工具提供的代码提示和补全功能。

JavaScript的魔法值是什么

代码补全

此外,魔法值还会影响代码的 易修改性。

假如说同一个魔法字符串在代码中多次出现,那当我要修改字符串文案时,就要人工一个个地去找到这个字符串进行修改,即使可以用开发工具提供的搜索和全局替换功能,但也要去检查一遍,非常麻烦。

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

而如果将字符串定义为常量,只用在定义处修改它的值即可。此时的常量名,倒像是魔法值的一个指针了。

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

解决魔法值

正因为魔法值对代码有很大的危害,所以各种代码规范中,都建议开发者不要使用魔法值。

解决魔法值的方式很简单,其实上面已经讲到了,就是为一系列相同的值定义一个  常量。注意是常量,不是变量!因为魔法值的内容一般是固定的,其本身结构不会被修改。

对于一系列的魔法值,建议定义为一个枚举或单独的常量类,比如资源有很多审核状态,可以把所有状态集中定义。

JavaScript 代码:

const REVIEW_STATUS = {   // 待审核   WaiTING: 0,   // 通过   PASS: 1,   // 拒绝   REJECT: 2 }

Java 代码:

public enum ReviewStatus {   WAITING, PASS, REJECT }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网html频道,感谢您对编程网的支持。

--结束END--

本文标题: JavaScript的魔法值是什么

本文链接: https://lsjlt.com/news/81659.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript的魔法值是什么
    JavaScript的魔法值是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。大家好,我是鱼皮,今天通过一件事情,分享写代码...
    99+
    2024-04-02
  • Java中的魔法值概念是什么
    本文小编为大家详细介绍“Java中的魔法值概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中的魔法值概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Java中的魔法值背景使用IDEA时,...
    99+
    2023-06-29
  • javascript方法返回值指的是什么
    这篇“javascript方法返回值指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“javascript方法返回值指...
    99+
    2023-07-06
  • JavaScript的返回值是什么
    这篇文章主要介绍“JavaScript的返回值是什么”,在日常操作中,相信很多人在JavaScript的返回值是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaSc...
    99+
    2024-04-02
  • JavaScript中的假值是什么
    本篇内容介绍了“JavaScript中的假值是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Python常用的魔法方法是什么
    这篇文章将为大家详细讲解有关Python常用的魔法方法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、python魔法方法Python的魔法方法会在特定的情况下自动调用,且他们的方法名通常被双下划...
    99+
    2023-06-15
  • python魔法方法的含义是什么
    Python中的魔法方法(Magic methods)是一些特殊的方法,它们以双下划线(__)开头和结尾,并具有特定的功能和含义。这...
    99+
    2023-10-23
    python
  • Python魔法方法的作用是什么
    Python魔法方法是一些特殊的方法,用于在特定的情况下自动调用。它们以双下划线()开头和结尾,如init,str__等。魔法方法允...
    99+
    2023-10-23
    Python
  • python魔法函数是什么
    魔法函数是python中的一种高级语法,魔法函数可以在类中自定义函数,并绑定到类;使用魔法函数为类增加一些额外功能,也可以增强对象的类型。常见的魔法函数有__init__()、__str__()、__new__()、__unicode__(...
    99+
    2024-04-02
  • python魔术方法是什么
    这篇文章主要介绍“python魔术方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python魔术方法是什么”文章能帮助大家解决问题。一、三个内置函数@classmethod&nda...
    99+
    2023-06-26
  • JavaScript原始值是什么
    今天小编给大家分享一下JavaScript原始值是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
  • 透视 JavaScript 解构赋值:简化代码的魔法
    要使用解构赋值,只需在变量声明中使用一对大括号,并将要提取的值的名称放在其中即可。例如,以下代码从一个对象中提取 name 和 age 属性: const person = { name: "John", age: 30 }; ...
    99+
    2024-02-11
    JavaScript 解构赋值 对象 数组 变量
  • javascript的五种空值是什么
    这篇“javascript的五种空值是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“j...
    99+
    2024-04-02
  • php中魔术方法是什么
    这篇文章主要介绍了php中魔术方法是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类中的魔术方法PHP 魔术方法指的是在某些时刻会自动被...
    99+
    2024-04-02
  • Java中的魔法值解决
    目录Java中的魔法值背景介绍解决方法Java的魔法值概念Java中的魔法值 背景 使用IDEA时,启用了阿里的代码规范检查,其中就有一项提示是不允许任何魔法值出现在代码里,于是出于...
    99+
    2024-04-02
  • Python中魔术方法的特点是什么
    这期内容当中小编将会给大家带来有关Python中魔术方法的特点是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、l...
    99+
    2023-06-14
  • php中的魔术方法是什么意思
    这篇文章主要介绍“php中的魔术方法是什么意思”,在日常操作中,相信很多人在php中的魔术方法是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中的魔术方法是什么意思”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • javascript对象属性值指的是什么
    这篇文章主要介绍了javascript对象属性值指的是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript对象属性值指的是什么文章都会有所收获,下面我们一起来...
    99+
    2024-04-02
  • Python中最神秘的魔法函数是什么
    这篇文章主要介绍“Python中最神秘的魔法函数是什么”,在日常操作中,相信很多人在Python中最神秘的魔法函数是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中最神秘的魔法函数是什么”的疑...
    99+
    2023-06-22
  • JavaScript对象转原始值是什么
    这篇文章主要讲解了“JavaScript对象转原始值是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript对象转原始值是什么”吧!Object.prototype.valu...
    99+
    2023-06-22
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作