iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > html >编写高质量JS变量的优秀做法有哪些
  • 219
分享到

编写高质量JS变量的优秀做法有哪些

2024-04-02 19:04:59 219人浏览 薄情痞子
摘要

本篇内容主要讲解“编写高质量js变量的优秀做法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“编写高质量JS变量的优秀做法有哪些”吧!1.首选 const,

本篇内容主要讲解“编写高质量js变量的优秀做法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“编写高质量JS变量的优秀做法有哪些”吧!

1.首选 const,再  let

我使用const或let声明变量,两者之间的主要区别是const变量需要一个初始值,并且一旦初始化就无法重新分配其值。

另一方面,let声明不需要初始值,我们可以多次重新分配其值。

// const 需要初始化 const pi = 3.14; // 不能重新分配const pi = 4.89; // throws "TypeError: Assignment to constant variable"

另一方面,let声明不需要初始值,我们可以多次重新分配其值。

// let 初始化是可选的 let result; // let can be reassigned result = 14; result = result * 2;

选择变量的声明类型时的一个好习惯是首选const,否则使用let。

function myBigFunction(param1, param2) {       const result = otherFunction(param1);       return something; }

例如,如果我们正在查看函数体,并看到const result = ...声明:

function myBigFunction(param1, param2) {       const result = otherFunction(param1);       return something; }

不知道myBigFunction()内部会发生什么, 我们可以得出结论,result 变量只分配了一次,声明之后是只读的。

在其他情况下,如果必须在执行过程中多次重新分配变量,则可以使用let声明。

2.最小化变量的范围

变量存在于它们所创建的作用域内。代码块和函数体为const和let变量创建一个作用域。提高变量可读性的一个好习惯是将变量保持在最小作用域内。

例如,以下函数是二进制搜索算法的实现:

function binarySearch(array, search) {   let middle;   let middleItem;   let left = 0;   let right = array.length - 1;    while(left <= right) {     middle = Math.floor((left + right) / 2);     middleItem = array[middle];     if (middleItem === search) {        return true;      }     if (middleItem < search) {        left = middle + 1;      } else {       right = middle - 1;      }   }   return false; }  binarySearch([2, 5, 7, 9], 7); // => true binarySearch([2, 5, 7, 9], 1); // => false

middle和middleItem变量在函数体的开头声明。因此,这些变量在binarySearch()函数体创建的整个作用域内都是可用的。

middle变量保留二进制搜索的中间索引,而middleItem变量保留二进制搜索的中间索引。

但是,middle和middleItem变量只在while循环代码块中使用。所以为什么不直接在while代码块中声明这些变量呢?

function binarySearch(array, search) {   let left = 0;   let right = array.length - 1;    while(left <= right) {     const middle = Math.floor((left + right) / 2);     const middleItem = array[middle];     if (middleItem === search) {       return true;      }     if (middleItem < search) {       left = middle + 1;      } else {       right = middle - 1;      }   }   return false; }

现在,middle和middleItem变量仅存在于使用变量的作用域。他们的生命周期和生命周期极短,因此更容易推断其作用。

3.在接近位置声明变量

我强烈希望在函数主体的顶部声明所有变量,尤其是在函数较大的情况下。不幸的是,这种做法的缺点是使我在函数中使用的意图变量变得混乱。

尽量在接近使用位置的地方声明变量。这样,我们就不用猜了:嘿,我看到了这里声明的变量,但是它在哪里被使用了。

假设我们有一个函数,该函数的主体中包含很多语句。我们可以在函数的开头声明并初始化变量结果,但是只能在return语句中使用result:

function myBigFunction(param1, param2) {   const result = otherFunction(param1);   let something;        return something + result; }

问题在于result 变量在开头声明,但仅在结尾使用,没有足够的理由在开始时声明该变量。

让我们通过将result 变量声明移到return语句之前来改进这个函数

function myBigFunction(param1, param2) {   let something;        const result = otherFunction(param1);   return something + result; }

现在,result变量在函数中有了它的正确位置。

4.好的命名意味着易于阅读

从良好的变量命名的众多规则中,我区分出两个重要的规则。

第一个很简单:使用驼峰命名为变量取名,并且在命名所有变量时保持一致。

const message = 'Hello'; const isLoading = true; let count

有特殊含义的数字或字符串,变量命名通常是大写的,在单词之间加下划线,以区别于常规变量

const SECONDS_IN_MINUTE = 60; const GRAPHQL_URI = 'Http://site.com/graphql';

第二条规则,在变量命名中,我认为这是最重要的:变量名称应明确无歧义地指出哪些数据保存了该变量。

以下是一些很好的变量命名示例:

let message = 'Hello'; let isLoading = true; let count;

message 名称表示此变量包含某种消息,很可能是字符串。

isLoading相同,布尔值指示加载是否在进行中。

count变量表示保存一些计数结果的数字类型变量。

选择一个明确表明其角色的变量名。

举个例子,这样就能看出区别了。假设看到了这样一个函数:

function salary(ws, r) {   let t = 0;   for (w of ws) {     t += w * r;   }   return t; }

你能总结出这个函数的作用吗?像ws、r、t、w这样的变量名几乎没有说明它们的意图。

相反,相同的函数,但使用了解释性变量命名

function calculateTotalSalary(weeksHours, ratePerHour) {   let totalSalary = 0;   for (const weekHours of weeksHours) {     const weeklySalary = weekHours * ratePerHour;     totalSalary += weeklySalary;   }   return totalSalary; }

该代码清楚地说明了它的作用。这就是良好命名的力量。

5. 引入中间变量

我比较少注释代码。我更喜欢编写代码即解释的风格,通过对变量、属性、函数和类的良好命名来表达意图。

编写自文档代码的一个好习惯是引入中间变量。在处理长表达式时很有用。

考虑以下表达式:

const sum = val1 * val2 + val3 / val4;

我们引入两个中间变量,增强长表达式的可读性:

const multiplication = val1 * val2; const division       = val3 / val4;  const sum = multiplication + division;

另外,让我们回顾一下二进制搜索实现算法:

function binarySearch(array, search) {   let left = 0;   let right = array.length - 1;    while(left <= right) {     const middle = Math.floor((left + right) / 2);     const middleItem = array[middle];     if (middleItem === search) {       return true;      }     if (middleItem < search) {       left = middle + 1;      } else {       right = middle - 1;      }   }   return false; }

这里middleItem是一个保存中间项目的中间变量。使用中间变量MiddleItem而不是直接使用项目访问器array  [middle]可读性更好。

与缺少middleItem解释变量的函数版本进行比较:

function binarySearch(array, search) {   let left = 0;   let right = array.length - 1;    while(left <= right) {     const middle = Math.floor((left + right) / 2);     if (array[middle] === search) {       return true;      }     if (array[middle] < search) {       left = middle + 1;      } else {       right = middle - 1;      }   }   return false; }

这个版本,没有解释变量,可读性就比较差。

到此,相信大家对“编写高质量JS变量的优秀做法有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 编写高质量JS变量的优秀做法有哪些

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 编写高质量JS变量的优秀做法有哪些
    本篇内容主要讲解“编写高质量JS变量的优秀做法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“编写高质量JS变量的优秀做法有哪些”吧!1.首选 const,...
    99+
    2024-04-02
  • C++高质量编程有哪些
    本篇内容主要讲解“C++高质量编程有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++高质量编程有哪些”吧!一、你需要一个函数将一个数组赋值为等差数列,并将会在函数的外部使用它。不合理: ...
    99+
    2023-06-17
  • 优秀的Python编写有哪些
    这篇文章主要介绍“优秀的Python编写有哪些”,在日常操作中,相信很多人在优秀的Python编写有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”优秀的Python编写有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-02
  • CSS变量带来的质变有哪些
    这篇文章主要介绍了CSS变量带来的质变有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、CSS变量带来的质变CSS变量带来的提升绝不仅仅是节约点CSS代码,以及降低CS...
    99+
    2023-06-08
  • SEO做高质量原创内容的方式有哪些
    这篇文章主要介绍了SEO做高质量原创内容的方式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  一.去搜索引擎不收录的网站搜索  据小编的经验,大家不妨去搜索引擎抓取不...
    99+
    2023-06-10
  • 怎么编写js函数来提高代码的质量
    这篇文章主要介绍了怎么编写js函数来提高代码的质量的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么编写js函数来提高代码的质量文章都会有所收获,下面我们一起来看看吧。函数是实现程序功能的最基本单位,每一个程序...
    99+
    2023-06-17
  • JS优雅的写法有哪些
    今天小编给大家分享一下JS优雅的写法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。JS的一些优雅写法reduce可以使...
    99+
    2023-07-05
  • JS编写优化的技巧有哪些
    本篇内容主要讲解“JS编写优化的技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS编写优化的技巧有哪些”吧!1. 按强类型风格写代码JS 是弱类型的,...
    99+
    2024-04-02
  • js全局变量和php全局变量的区别有哪些
    本文小编为大家详细介绍“js全局变量和php全局变量的区别有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“js全局变量和php全局变量的区别有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。js全局变量和...
    99+
    2023-06-29
  • 书写高质量SQL的30条建议分别是哪些
    书写高质量SQL的30条建议分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言小编将结合实例demo,阐述30条有关于优化SQL的建...
    99+
    2024-04-02
  • 有哪些免费高质量的英文丝带字体
    这篇文章主要讲解了“有哪些免费高质量的英文丝带字体”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些免费高质量的英文丝带字体”吧!AirstreamCyrillic RibbonHFF R...
    99+
    2023-06-08
  • JavaScript变量类型有哪些及变量间的转换方法
    这篇文章主要介绍“JavaScript变量类型有哪些及变量间的转换方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript变量类型有哪些及变量间的转换方法”文章能帮助大家解决问题。1....
    99+
    2023-06-29
  • javascript有哪些定义变量的方法
    这篇文章主要讲解了“javascript有哪些定义变量的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript有哪些定义变量的方法”吧!js定义变量的方法:1、使用var定义...
    99+
    2023-06-14
  • linux声明变量的方法有哪些
    在Linux中,声明变量的方法有以下几种:1. 使用等号(=)进行赋值:```bashvariable=value```2. 使用l...
    99+
    2023-09-08
    linux
  • java变量赋值的方法有哪些
    在Java中,变量可以通过以下方法进行赋值: 直接赋值:可以直接将一个值赋给变量,例如:int a = 10; 表达式赋值:...
    99+
    2024-03-11
    java
  • python中合法的变量名有哪些
    python中合法的变量名有有以下几点规则:变量名可以由字母、数字、下划线(_)组成,但不能以数字开头;变量名不可以是python关键字,但可以包含关键字;变量名不能有空格;...
    99+
    2024-04-02
  • python定义变量的方法有哪些
    Python定义变量的方法有以下几种:1. 直接赋值:可以通过等号将一个值赋给变量,例如:`x = 10`。2. 动态赋值:可以在不...
    99+
    2023-08-08
    python
  • jmeter设置变量的方法有哪些
    在JMeter中,有以下几种方法可以设置变量:1. 通过用户定义的变量:可以在Test Plan中添加一个用户定义的变量元素,然后在...
    99+
    2023-09-15
    jmeter
  • Python变量的使用方法有哪些
    本篇内容介绍了“Python变量的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!创建变量变量是存放数据值的容器。与其他编程语言...
    99+
    2023-07-05
  • linux变量赋值的方法有哪些
    在Linux中,变量赋值的方法有以下几种:1. 使用等号(=)进行赋值,例如:`var="value"`2. 使用let命令进行赋值...
    99+
    2023-09-16
    linux
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作