[GAS] Khao báo biến

Cấu trúc khai báo là gì
Trong VBA, để khai báo biến ta dùng Dim hay Redim (tái khai báo) hoặc const để khai báo hằng số.
Trong GAS ta có ba từ khóa dùng để khai báo, là "var", "let", "const".
Mã:
function myFunction() {
  var a = 10;
  Logger.log(a); //10.0

  let b = 10;
  Logger.log(b); //10.0

  const c = 10;
  Logger.log(c); //10.0
}
Sự khác nhau của var, let, const
Biến số hoặc Hằng sốTái gán giá trịTái khai báoPhạm vi
varBiến sốCó thểCó thểHàm
letBiến sốCó thểXBlock
constHằng sốXXBlock
Biến số là var, let. Hằng số là const
Để khai báo biến số, ta dùng "var" hay "let". Để khai báo hằng số ta dùng "const".
Biến số: Ta có thể gán giá trị cho nó.
Hằng số: Ta chỉ có một lần duy nhất quyết định giá trị cho nó, sau đó không thể gán giá trị khác cho nó được nữa.
Mã:
function myFunction() {
  var a = 10;
  a = 5; // OK

  let b = 10;
  b = 5; // OK

  const c = 10;
  c = 5; // error

}
Với hằng số, ta không thể thay đổi giá trị cho nó, vì thế ở trên xảy ra lỗi.
Dưới đây là trường hợp khai báo biến số bằng var :
Mã:
//var
function myFunction()  {

  var a = 100;
  
  if(true){
    var b = 10;
  }

  Logger.log(a); // 100
  Logger.log(b); // 10

}
Dưới đây là trường hợp khai báo bằng let :
Mã:
//let


function myFunction()  {

  let a = 100;
  
  if(true){
    let b = 10;
  }

  Logger.log(a); // 100
  // Logger.log(b); // Error

}
Khi khai báo bằng var thì nó có tác dụng trong hàm, bất cứ đâu trong hàm cũng có thể tham chiếu tới nó được.
Khi khai báo bằng let thì nó chỉ có tác dụng trong khối block và cũng chỉ trong khối block đó tham chiếu tới nó được.
Hiện tại không phải là "var" mà là "let" đang được sử dụng rộng rãi
Thực tế các câu lệnh khai báo bằng "const" và "let" gần đây mới xuất hiện, trước đây chỉ cho phép khai báo bằng "var".
GAS hiện đang sử dụng V8 runtime engine (trình thông dịch), và "const" và "let" có thể được sử dụng kể từ thời điểm đó.
"var" có vẻ thuận tiện hơn khi sử dụng nhưng lại dễ gây ra lỗi, bởi vì vượt ra ngoài phạm vi của hàm, nó có thể được tái khai báo, điều này có thể dẫn đến nhầm lẫn. Vì vậy "let" hiện đang được khuyến khích sử dụng cho khai báo biến.
Tổng kết
Một: Khai báo biến số ta dùng var, let. Khai báo hằng số ta dùng const.
Hai: Trong khai báo var, thì từ ngoài hàm ta có thể tham chiếu tới. Với khai báo let, thì từ ngoài hàm không thể tham chiếu tới biến được khai báo bởi let.
Ba: Hiện tại người ta khuyến khích sử dụng let.
Nguồn:
 
Top