مقدمة عن JavaScript في Earth Engine

يغطّي هذا البرنامج التعليمي الحد الأدنى من JavaScript اللازم لبدء كتابة نصوص برمجية في Earth Engine. للحصول على المزيد من الدروس التعليمية الشاملة حول JavaScript، يمكنك الاطّلاع على موارد المطوّرين هذه من Mozilla. للحصول على مقدّمة حول البرمجة مع أمثلة بلغة JavaScript، يمكنك الاطّلاع على Eloquent JavaScript. للحصول على اقتراحات بشأن أسلوب ترميز JavaScript، يمكنك الاطّلاع على دليل أسلوب JavaScript من Google. في هذا البرنامج التعليمي، ستكتب رمز JavaScript في محرّر الرموز في Earth Engine. قبل البدء، استخدِم دليل "أداة تعديل الرموز" للتعرّف على بيئة "أداة تعديل الرموز".

مرحبًا أيها العالم!

حان الوقت لكتابة أول رمز JavaScript لـ Earth Engine. في متصفّح 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 وطرقها.