从零开始学习JavaScript:变量的奥秘解析!

发表时间: 2023-08-10 11:10

大家好,在本篇文章中,我们将深入了解JavaScript变量的方方面面。无论你是初学者还是有一定经验的开发者,本文都将为你揭开JavaScript变量的奥秘,让你轻松掌握这门重要的编程语言

一、变量是什么?

在JavaScript中,变量是存储数据的容器,它们允许你在程序中存储和操作各种类型的值。使用变量可以使你的代码更加灵活和可维护,因为你可以在程序中多次使用同一个值,而不需要重复输入。通俗的理解变量就是使用【特定符号】来代表【特定数据】。

  <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>变量</title></head><body>    <script>          x = 1          y = 2        // x和y两个符号分别表示了数字1和2                    //举例:使用变量记录数据        // 将用户输入的内容保存在 num 这个变量(容器)中          num = prompt('请输入一数字!')          // 通过 num 变量(容器)将用户输入的内容输出出来          alert(num)          document.write(num)        </script></body></html>

二、声明变量:

要使用变量,首先需要声明它。在JavaScript中,有三种声明变量的方式:使用varletconst关键字。这些关键字的选择取决于变量的作用域和是否允许重新赋值。

声明(定义)变量有两部分构成:声明关键字、变量名(标识)

关键字

关键字也叫保留字,是 JavaScript 中内置的一些英文词汇(单词或缩写),它们代表某些特定的含义。以下是JavaScript常见的一些关键字。

case       else       new         varcatch      export     return      voidclass      extends    super       whileconst      finally    switch      withcontinue   for        this        yielddebugger   function   throwdefault    if         tryenum       await      implements  protectedinterface  public     package     staticimport     from       as

这些关键字在JavaScript的语法中有特定的用途,例如:

  • ifelseswitchcasedefault条件语句和分支逻辑的控制。
  • forwhiledo:循环结构。
  • function:用于声明函数。
  • varletconst:用于声明变量。
  • classextendssuper:用于创建和扩展类。
  • return:用于从函数中返回值。
  • breakcontinue:用于控制循环和语句块的执行流程。

声明变量和赋值

声明变量:关键字+变量名

赋值:变量名 = XX数据

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>变量声明和赋值</title></head><body>    <script>     // 声明(定义)变量有两部分构成:声明关键字、变量名(标识)    // let 即关键字,所谓关键字是系统提供的专门用来声明(定义)变量的词语    // age 即变量的名称,也叫标识符    let age    // 赋值,将 25 这个数据存入了 age 这个“容器”中    age = 25    // 这样 age 的值就成了 25    document.write(age)        // 也可以声明和赋值同时进行    let str = '你好,谧夜星球!'    alert(str);  </script></body></html>

let、var和const声明变量的部分区别

作用域:

  • var:使用 var 声明的变量具有函数作用域,在函数内部声明的 var 变量在函数外部仍然可以访问。它也具有变量提升(hoisting)的特性,变量声明会被提升到作用域的顶部。
  • letconst:使用 letconst 声明的变量具有块级作用域,这意味着在代码块(如循环、条件语句等)内部声明的变量只能在该块内部访问。

变量提升:

  • var 存在变量提升,这意味着变量声明会被提升到作用域的顶部,但赋值操作不会提升。这可能导致在变量声明之前就使用变量,其值为 undefined
  • letconst 存在变量提升,但在声明之前使用变量会引发暂时性死区(Temporal Dead Zone,TDZ)错误,即在声明之前访问会抛出错误。

变量重复声明:

  • var 允许在同一作用域内重复声明同名的变量,不会抛出错误。
  • letconst 不允许在同一作用域内重复声明同名的变量,否则会抛出错误。

可变性:

  • varlet 声明的变量可以重新赋值。
  • const 声明的变量是常量,一旦赋值后就不能再被重新赋值。

全局对象属性:

  • var 声明的全局变量会成为全局对象的属性(在浏览器环境中是 window 对象的属性)。
  • letconst 声明的全局变量不会成为全局对象的属性。

初始化:

  • varletconst 在声明时都可以不进行初始化,此时变量的初始值都将是 undefined

适用场景:

  • var 在现代 JavaScript 中使用较少,因为它具有函数作用域和变量提升的特性,容易引发一些意外行为。在循环中使用 var 可能会导致闭包问题。
  • let 是块级作用域的变量声明方式,适合大多数情况,尤其是需要在循环中使用的情况。
  • const 用于声明常量,适用于那些不希望被重新赋值的变量。

综上所述,letconst 是在现代 JavaScript 中更常见和推荐的变量声明方式,可以更好地控制作用域、避免一些潜在问题,并提高代码的可读性和可维护性。

三、变量的命名规则:

在命名变量时,需要遵循一些规则:

  • 变量名必须以字母、下划线(_)或美元符号($)开头,不能以数字开头。
  • 变量名可以包含字母、数字、下划线和美元符号。
  • 变量名区分大小写,例如myVarmyvar是不同的变量。
  • JavaScript 内部已占用于单词(关键字或保留字)不允许使用
  • 尽量保证变量具有一定的语义,见字知义

四、变量的作用域:

变量的作用域指的是变量在代码中的可访问范围。JavaScript中有两种主要的作用域:全局作用域和局部作用域。

  • 全局作用域中声明的变量可以在整个程序中访问。
  • 局部作用域中声明的变量只能在声明它的代码块内部访问。

常量

概念:使用 const 声明的变量称为“常量”。

使用场景:当某个变量永远不会改变的时候,就可以使用 const 来声明,而不是let。

命名规范:和变量一致

const PI = 3.14

注意: 常量不允许重新赋值,声明的时候必须赋值(初始化)

总结:

本文深入介绍了JavaScript变量的各个方面,从声明变量到变量的作用域、命名规则以及使用方法等。通过学习这些基础知识,你将能够更好地理解和运用JavaScript变量,为你的编程之路铺平道路。

希望本文能够帮助你更深入地理解JavaScript变量,让你在编程的旅程中游刃有余。如果你有任何关于JavaScript变量的疑问,欢迎在评论区提出,我将竭诚为你解答!

感谢阅读本文,希望能够对你有所帮助。记得点赞、分享!持续更新中!