变量
变量只不过是命名容器。 您可以将数据放入这些容器中,然后使用其容器名称引用数据。
CoffeeScript变量
在JavaScript中,在使用变量之前,我们需要声明并初始化它(赋值)。 与JavaScript不同,在CoffeeScript中创建变量时,不需要使用var关键字声明它。 我们只是通过为文字赋值来创建一个变量,如下所示。
name = variable name
例子 (Example)
在下面的CoffeeScript代码中,我们分别定义了两个变量name和age ,string和number数据类型。 将其保存在名为variable_example.coffee的文件中。
name = "Javed"
age = 25
Compiling the code
通过在命令提示符中执行以下命令来编译上述CoffeeScript代码。
c:\> compile -c variable_example.coffee
在编译时,将生成一个名为variable_example.js的JavaScript文件,其中包含以下内容。 在这里,您可以观察到编译器代表我们使用var关键字声明了变量(年龄和名称)。
// Generated by CoffeeScript 1.10.0
(function() {
<b>var age, name;</b>
name = "Javed";
age = 25;
}).call(this);
可变范围
变量的范围是程序中定义它的区域。 JavaScript和CoffeeScript变量只有两个范围。
Global Variables - 全局变量具有全局范围,这意味着它可以在JavaScript代码中的任何位置使用。
Local Variables - 局部变量仅在定义它的函数中可见。 函数参数始终是该函数的本地参数。
JavaScript中的变量问题
在JavaScript中,每当我们在不使用var关键字的情况下定义变量时,都会使用全局范围创建变量。 这会导致很多问题。 考虑以下示例 -
<script type = "text/javascript">
var i = 10;
document.write("The value of global variable i is "+ i);
document.write("<br>");
test();
function test() {
i = 20;
document.write("The value of local variable i is "+i);
document.write("<br>");
}
document.write("The value of global variable i is "+i);
</script>
执行时,上面的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() {
<b>var age, name;</b>
name = "javed";
age = 20;
}).call(this);
无论如何,如果我们想要,我们可以用全局命名空间声明一个变量。 我们可以明确地做到,如下所示。
obj = this
obj.age = 30
CoffeeScript Variable Names (Literals)
在CoffeeScript中命名变量时,请记住以下规则。
您不应将任何CoffeeScript保留关键字用作变量名称。 这些关键字将在下一节中提到。 例如,break或Boolean变量名称无效。
CoffeeScript变量名称不应以数字(0-9)开头。 它们必须以字母或下划线字符开头。 例如,123test是无效的变量名称,但_123test是有效的。
CoffeeScript变量名称区分大小写。 例如, Name和name是两个不同的变量。