Earth Engine 適用的 JavaScript 簡介

本教學課程涵蓋的 JavaScript 知識,足以讓您開始編寫 Earth Engine 指令碼。如需更詳盡的 JavaScript 教學課程,請參閱這些 Mozilla 開發人員資源。如需程式設計簡介和 JavaScript 範例,請參閱「Eloquent JavaScript」。如需 JavaScript 程式碼樣式的建議,請參閱 Google JavaScript 樣式指南。在本教學課程中,您將在 Earth Engine 程式碼編輯器中編寫 JavaScript。開始之前,請參閱程式碼編輯器指南,熟悉程式碼編輯器環境。

Hello World!

現在,請編寫第一個 Earth Engine 專用 JavaScript!在 Chrome 瀏覽器中前往 code.earthengine.google.com,然後將下列內容複製到程式碼編輯器:

程式碼編輯器 (JavaScript)

print('Hello World!');

按一下「Run」,觀察「Hello world!」是否顯示在「Console」分頁中。上述程式碼行是 JavaScript 陳述式。在 JavaScript 中,陳述式會以分號結尾。Earth Engine 程式是由一組類似這樣的陳述式組成。您可以將程式碼加上註解,避免程式碼執行,而不必刪除。如要註解排除程式碼,其中一種方法是在不想執行的程式碼前方加上兩個正斜線 //。例如:

程式碼編輯器 (JavaScript)

// print('Hello World!');

建議您在程式碼中加入大量註解,說明您要執行的操作。此外,建議您刪除已不再執行的註解程式碼。這兩種做法都能提高程式碼的可讀性。

基本 JavaScript 資料類型

字串

使用變數儲存物件和原始物件,有助於提高程式碼的可讀性。舉例來說,儲存字串物件的變數是由單引號 ' 或雙引號 " 定義 (但請勿混用),建議使用單引號。建立新字串,並儲存在名為 greetString 的變數中:

程式碼編輯器 (JavaScript)

// Use single (or double) quotes to make a string.
var greetString = 'Ahoy there!';
// Use parentheses to pass arguments to functions.
print(greetString);

Numbers

請注意,變數是以關鍵字 var 定義。變數也可以儲存數字:

程式碼編輯器 (JavaScript)

// Store a number in a variable.
var number = 42;
print('The answer is:', number);

在這個範例中,請注意,當 print() 獲得兩個以半形逗號分隔的引數時,每個引數都會顯示在不同的行中。

清單

使用方括號 [] 定義清單。數字清單,例如:

程式碼編輯器 (JavaScript)

// Use square brackets [] to make a list.
var listOfNumbers = [0, 1, 1, 2, 3, 5];
print('List of numbers:', listOfNumbers);

清單也可以儲存字串或其他物件。例如:

程式碼編輯器 (JavaScript)

// Make a list of strings.
var listOfStrings = ['a', 'b', 'c', 'd'];
print('List of strings:', listOfStrings);

物件

JavaScript 中的物件是 key: value 組合的字典。使用大括號 {} 建立物件 (或字典),例如:

程式碼編輯器 (JavaScript)

// Use curly brackets {} to make a dictionary of key:value pairs.
var object = {
  foo: 'bar',
  baz: 13,
  stuff: ['this', 'that', 'the other thing']
};
print('Dictionary:', object);
// Access dictionary items using square brackets.
print('Print foo:', object['foo']);
// Access dictionary items using dot notation.
print('Print stuff:', object.stuff);

請注意,您可以提供鍵,從字典中取得值。這個範例說明如何對 JavaScript 物件執行這項操作。稍後您將瞭解如何對 Earth Engine 伺服器上的字典執行這項操作。

函式

函式是另一種提高程式碼可讀性和可重複使用性的方法,可將一組作業分組。使用 function 關鍵字定義函式。函式名稱的開頭為英文字母,結尾則是一對括號。函式通常會採用參數,指示函式要執行的動作。這些參數會放在括號 () 內。構成函式的陳述式組合會放在大括號內。return 關鍵字會指出函式輸出內容。宣告函式的方法有很多種,但這裡我們會使用類似以下的方法:

程式碼編輯器 (JavaScript)

var myFunction = function(parameter1, parameter2, parameter3) {
  statement;
  statement;
  statement;
  return statement;
};

我們逐行來看。第一行會建立新函式,並指派給變數 myFunction。這個變數可以任意命名。定義稍後如何呼叫函式。函式名稱後方括號中的字詞 (即 parameter1、parameter2、parameter3) 是參數名稱,也可以任意命名,但建議使用與函式外部程式碼不同的不重複名稱。無論您如何命名,函式都會使用這些名稱,參照呼叫函式時傳入的值。參數傳入函式後的值稱為「引數」。雖然函式可以使用在函式外部宣告的變數 (「全域」變數),但函式引數在函式外部不可見。函式可採用任意數量的參數,甚至不採用任何參數。以下是只會傳回引數的函式簡單範例:

程式碼編輯器 (JavaScript)

// The reflect function takes a single parameter: element.
var reflect = function(element) {
  // Return the argument.
  return element;
};
print('A good day to you!', reflect('Back at you!'));

這是 user-defined function 的範例。此外,還有許多內建的 Earth Engine 函式。探索程式碼編輯器的「Docs」(文件) 分頁,瞭解這些內建函式。以下是 Earth Engine 函式的簡單範例:

程式碼編輯器 (JavaScript)

var aString = ee.Algorithms.String(42);

在下一節中,進一步瞭解 Earth Engine 物件和方法。