Js中var,let,const的区别你知道吗

当我们在 JavaScript 中声明变量时,可以使用三种关键字 var、let 和 const。这些关键字虽然能够完成相同的任务,但它们的含义和用法是不同的。

var关键字

使用 var 关键字,我们可以在 JavaScript 中声明一个变量。它是 ES5 标准中的一部分。var 关键字在声明变量时,会将该变量提升到函数或全局作用域的顶部。这意味着,在声明之前,变量就已经存在了。同时,var 声明的变量在同一个作用域中可以被重复声明,这样会覆盖已有的变量值。

示例

function example() {
  var x = 10;
  if(true) {
    var x = 20;
    console.log(x); // 20
  }
  console.log(x); // 20
}
example();

上面的代码中,我们在函数中通过 var 声明了一个变量 x,并将其值设置为 10。然后,在 if 语句中,我们通过 var 重新声明了一个同名变量 x,并将其值设置为 20。当代码执行到 console.log(x) 时,会输出变量 x 的值,即 20。同时,如果我们在 if 语句的外部再次调用 console.log(x),它仍然会输出 20。这是因为使用 var 声明的变量在整个函数范围内都是可见的。

let 关键字

let 也是 ES6 标准中新增的关键字之一。相比于 var 来说,let 声明的变量的作用域与 var 声明的变量不同。在同一个作用域内,使用 let 声明的变量值不会相互干扰。同时,使用 let 声明变量时,变量只在当前代码块中有效,离开这个代码块后,变量就会销毁。

示例

function example() {
  let x = 10;
  if(true) {
    let x = 20;
    console.log(x); // 20
  }
  console.log(x); // 10
}
example();

上面的代码中,我们在函数中通过 let 声明了一个变量 x,并将其值设置为 10。然后,在 if 语句中,我们通过 let 重新声明了一个同名变量 x,并将其值设置为 20。当代码执行到 console.log(x) 时,会输出变量 x 的值,即 20。但是,当代码执行到 if 语句外部时,调用 console.log(x) 时会输出 10,这是因为外部代码块中的变量 x 不受内部代码块声明的 let 变量影响。

const 关键字

const 也是 ES6 标准中新增的关键字之一。使用 const 关键字,我们可以声明常量,这意味着变量的值在初始化之后不能被修改。和 let 一样,使用 const 声明的变量只在当前代码块中有效。

示例

function example() {
  const x = 10;
  x = 20; // 抛出 TypeError 异常,因为常量 x 的值不能再次修改
  if(true) {
    const x = 20;
    console.log(x); // 20
  }
  console.log(x); // 10
}
example();

上面的代码中,我们在函数中通过 const 声明了一个常量 x,并将其值设置为 10。然后,我们试图将常量 x 的值修改为 20,这时就会抛出 TypeError 异常。接着,在 if 语句中,我们通过 const 声明了一个同名常量 x,并将其值设置为 20。当代码执行到 console.log(x) 时,会输出变量 x 的值,即 20。但是,当代码执行到 if 语句外部时,调用 console.log(x) 时会输出 10,这是因为常量 x 的值不能再次修改。

总结来说,var 声明的变量作用于函数或全局作用域中,let 和 const 声明的变量作用于当前代码块中。let 和 const 声明的变量不能被重复声明,而 const 声明的变量的值一旦被设置后不能再次修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Js中var,let,const的区别你知道吗 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JS加密插件CryptoJS实现的Base64加密示例

    下面是“JS加密插件CryptoJS实现的Base64加密示例”的完整攻略,包含两个示例: 1. 什么是CryptoJS? CryptoJS是一个纯JavaScript实现的加密库,提供了很多常见的加密算法和加密模式,例如AES、DES、TripleDES、MD5、SHA-1、SHA-256等。它支持的加密方式很全面,使用简便,而且在前端中使用也非常方便。 …

    JavaScript 2023年5月19日
    00
  • Javascript摸拟自由落体与上抛运动原理与实现方法详解

    Javascript模拟自由落体与上抛运动原理与实现方法详解 原理 自由落体是指在重力作用下,物体沿竖直方向做自由运动。上抛运动是指物体受到一个斜向上的初速度后,在重力作用下做抛体运动。 在Javascript中,我们可以通过模拟物体在受到重力作用时的加速度来实现自由落体和上抛运动的效果。 对于自由落体和上抛运动,我们需要掌握以下公式: 自由落体公式 在重力…

    JavaScript 2023年5月28日
    00
  • 利用js动态添加删除table行的示例代码

    当需要在网页中展示和处理数据时,使用table是一种非常常见的方式。在一些场景下,需要动态地添加或删除表格行,这就需要使用JavaScript进行操作。下面是一份利用js动态添加删除table行的示例代码攻略。 1. HTML结构 首先,我们需要在HTML中定义一个table,标记好每一列的thead和tbody,并预留出一行作为模板行。 <table…

    JavaScript 2023年6月11日
    00
  • JScript面向事件驱动的编程

    JScript是一种面向事件驱动的编程语言。在JScript中,事件被认为是程序操作的核心。事件是事情发生的地方。事件驱动的编程使得程序可以在事件发生时自动执行对应的操作,从而实现自动化、交互和用户友好的程序。下面是实现JScript面向事件驱动的编程攻略: 步骤一:定义事件 JScript 的事件可以是来自用户操作、系统消息、网络操作或其他交互。当事件发生…

    JavaScript 2023年5月27日
    00
  • JS获取html对象的几种方式介绍

    以下是关于JS获取html对象的几种方式的完整攻略: 1. 通过id获取对象 我们可以通过id来获取html对象。具体步骤如下: var obj = document.getElementById(‘idName’); 其中,’idName’是你想要获取的id名称。这个方法在页面中只能有一个元素拥有该id才能生效。 举个例子,如果你想获取以下html代码中的…

    JavaScript 2023年5月27日
    00
  • JS对象与JSON格式数据相互转换

    JS对象与JSON格式数据相互转换是Web开发中非常常见的任务。在以下的攻略中,我提供两种基本的方法帮助你完成这个任务。其中一种使用JavaScript的内置函数,另一种使用第三方库。 1. 使用JavaScript内置函数方法转换 JavaScript提供了两个内置函数 JSON.stringify() 和 JSON.parse() 分别用于将JS对象转换…

    JavaScript 2023年5月27日
    00
  • JavaScript中标识符提升问题

    JavaScript中标识符提升问题是指在JavaScript代码中,变量或函数在声明之前仍然可以被引用和使用的问题。这是JavaScript语言本身的一个特性,不是一个错误。这种特性也被称为提升(Hoisting)。 在JavaScript代码中,当我们声明一个变量或函数时,它们会在代码执行之前被“提升”到代码的顶部。这意味着我们可以在声明之前使用它们。但…

    JavaScript 2023年5月18日
    00
  • JavaScript实现二叉树定义、遍历及查找的方法详解

    二叉树是一种常见的树形数据结构,由一个根节点和最多两个子节点组成,其中左子节点小于等于根节点,右子节点大于根节点。在JavaScript中,我们可以使用对象来模拟二叉树。 1. 二叉树的定义 我们可以定义一个二叉树的节点对象,包含三个属性:值(value)、左子节点(left)、右子节点(right)。定义二叉树类(Tree),包含一个根节点(root)。 …

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部