- CoffeeScript 教程
- CoffeeScript - 主页
- CoffeeScript - 概述
- CoffeeScript - 环境
- CoffeeScript - 命令行实用程序
- CoffeeScript - 语法
- CoffeeScript - 数据类型
- CoffeeScript - 变量
- CoffeeScript - 运算符和别名
- CoffeeScript - 条件
- CoffeeScript - 循环
- CoffeeScript - 理解
- CoffeeScript - 函数
- CoffeeScript 面向对象
- CoffeeScript - 字符串
- CoffeeScript - 数组
- CoffeeScript - 对象
- CoffeeScript - 范围
- CoffeeScript - Splat
- CoffeeScript - 日期
- CoffeeScript - 数学
- CoffeeScript - 异常处理
- CoffeeScript - 正则表达式
- CoffeeScript - 类和继承
- CoffeeScript 高级版
- CoffeeScript - Ajax
- CoffeeScript - jQuery
- CoffeeScript-MongoDB
- CoffeeScript-SQLite
- CoffeeScript 有用资源
- CoffeeScript - 快速指南
- CoffeeScript - 有用的资源
- CoffeeScript - 讨论
CoffeeScript - 变量
变量只不过是命名容器。您可以将数据放入这些容器中,然后使用其容器的名称引用数据。
CoffeeScript 变量
在JavaScript中,在使用变量之前,我们需要声明并初始化它(赋值)。与 JavaScript 不同,在 CoffeeScript 中创建变量时,无需使用var关键字声明它。我们只需将值分配给文字即可创建一个变量,如下所示。
name = variable name
例子
在下面的 CoffeeScript 代码中,我们定义了两个变量name和age,分别是字符串和数字数据类型。将其保存在名为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关键字定义变量时,它都会在全局范围内创建。这会导致很多问题。考虑以下示例 -
<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。(如果我们愿意,我们可以使用编译命令的-b或--bare选项删除顶级函数包装器)我们创建的每个变量都是使用匿名函数中的var关键字声明的,因此默认情况下,每个变量在 CoffeeScript 中是本地的。
(function() { var age, name; name = "javed"; age = 20; }).call(this);
无论如何,如果我们愿意,我们可以声明一个具有全局命名空间的变量。我们可以明确地做到这一点,如下所示。
obj = this obj.age = 30
CoffeeScript 变量名称(文字)
在 CoffeeScript 中命名变量时,请记住以下规则。
您不应使用任何 CoffeeScript 保留关键字作为变量名。这些关键字将在下一节中提到。例如,中断或布尔变量名称无效。
CoffeeScript 变量名称不应以数字 (0-9) 开头。它们必须以字母或下划线字符开头。例如,123test 是无效变量名称,但 _123test 是有效变量名称。
CoffeeScript 变量名称区分大小写。例如,Name和name是两个不同的变量。