📜  CoffeeScript-变量

📅  最后修改于: 2020-10-26 05:41:16             🧑  作者: Mango


变量不过是命名容器。您可以将数据放入这些容器中,然后使用其容器的名称来引用数据。

CoffeeScript变量

在JavaScript中,在使用变量之前,我们需要对其进行声明和初始化(分配值)。与JavaScript不同,在CoffeeScript中创建变量时,无需使用var关键字对其进行声明。我们只需通过为字面量赋值即可创建变量,如下所示。

name = variable name

在下面的CoffeeScript代码中,我们分别定义了两个变量nameage ,分别是字符串和数字数据类型。将其保存在名称为variable_example.coffee的文件中。

name = "Javed"
age = 25

编译代码

通过在命令提示符下执行以下命令来编译上述CoffeeScript代码。

c:\> compile -c variable_example.coffee

编译时,将生成一个包含以下内容的名为variable_example.js的JavaScript文件。在这里,您可以看到编译器代表我们使用var关键字声明了变量(年龄和名称)。

// Generated by CoffeeScript 1.10.0
(function() {
  var age, name;
  name = "Javed";
  age = 25;
  
}).call(this);

可变范围

变量的范围是程序在其中定义的区域。 JavaScript和CoffeeScript变量只有两个范围。

  • 全局变量-全局变量具有全局范围,这意味着它可以在JavaScript代码中的任何位置使用。

  • 局部变量-局部变量仅在定义它的函数中可见。函数参数始终是该函数的局部参数。

JavaScript中的变量问题

在JavaScript中,只要我们在不使用var关键字的情况下定义变量,便会使用全局范围创建该变量。这引起很多问题。考虑以下示例-


在执行时,上述JavaScript为您提供以下输出-

The value of global variable i is 10

The value of local variable i is 20

The value of global variable i is 20

在上面的示例中,我们在全局空间中创建了一个名为i的变量,并为其分配了值10。在函数,尝试创建具有相同名称的局部变量时,我们已声明为i = 20 ;没有var关键字。由于我们错过了var关键字,因此将全局变量i的值重新分配为20。

因此,建议使用var关键字声明变量。

CoffeeScript中的可变范围

每当我们编译CoffeeScript文件时,CoffeeScript编译器都会创建一个匿名函数,并在该函数内将CoffeeScript代码逐行反编译为JavaScript。 (如果需要,我们可以使用compile命令的-b–bare选项删除顶级函数包装器。)我们创建的每个变量都是在匿名函数使用var关键字声明的,因此默认情况下,每个变量在CoffeeScript中是本地的。

(function() {
  var age, name;
  name = "javed";
  age = 20;
}).call(this);

无论如何,如果需要,我们可以使用全局名称空间声明一个变量。我们可以明确地做到这一点,如下所示。

obj = this
obj.age = 30

CoffeeScript变量名称(字面量)

在CoffeeScript中命名变量时,请牢记以下规则。

  • 您不应将任何CoffeeScript保留关键字用作变量名。下一节将提到这些关键字。例如,break或Boolean变量名称无效。

  • CoffeeScript变量名称不应以数字(0-9)开头。它们必须以字母或下划线字符开头。例如,123test是无效的变量名,而_123test是有效的变量名。

  • CoffeeScript变量名称区分大小写。例如, Namename是两个不同的变量。