本教學課程涵蓋的 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!');
按一下「執行」,觀察「Hello world!」是否已列印至「控制台」分頁標籤。上述程式碼是 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!'));
這是使用者定義函式的範例。此外,還有許多內建的 Earth Engine 函式。如要瞭解這些內建函式,請前往程式碼編輯器的「文件」分頁。以下是 Earth Engine 函式的極簡單範例:
程式碼編輯器 (JavaScript)
var aString = ee.Algorithms.String(42);
在下一節中,進一步瞭解 Earth Engine 物件和方法。