CoffeeScript - 變數



變數只不過是命名的容器。您可以將資料放入這些容器中,然後使用容器的名稱來引用資料。

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關鍵字聲明瞭變數(age 和 name)。

// 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 保留關鍵字作為變數名。這些關鍵字在下一節中提到。例如,break 或 Boolean 變數名無效。

  • CoffeeScript 變數名不能以數字 (0-9) 開頭。它們必須以字母或下劃線字元開頭。例如,123test 是無效的變數名,但 _123test 是有效的變數名。

  • CoffeeScript 變數名區分大小寫。例如,Namename是兩個不同的變數。

廣告