تتطلب قراءة هذه المقالة تجربة البرمجة بلغات أخرى.
قبل البدء في الدراسة
معظم لغات البرمجة لها أجزاء جيدة وأجزاء سيئة. يتحدث هذا المقال فقط عن الأجزاء الجيدة من JavaScript ، لأنه:
1. مجرد تعلم الجزء الأفضل يمكن أن يقصر وقت التعلم
2. الرمز المكتوب أكثر قوة
3. الكود المكتوب أسهل في القراءة
4. الكود المكتوب أسهل في الحفاظ عليه
أنواع ضعيفة وقوية
بشكل عام ، كلما قمت بإصلاح الخطأ في وقت سابق ، قل السعر الذي تدفعه مقابله. يمكن لمرسلات اللغات المكتوبة بقوة التحقق من بعض الأخطاء في وقت الترجمة. JavaScript هي لغة ضعيفة من النوع ، ولا يمكن أن تتحقق مترجمها من أخطاء النوع ، لكن الممارسة توضح ذلك:
1. الأخطاء التي يمكن أن تكتب بقوة يمكن تجنبها ليست تلك الأخطاء الحرجة
2. يمكن أن تجلب الأنواع الضعيفة المرونة دون الحاجة إلى تحمل عبء الأنواع القوية
معايير جافا سكريبت
يحدد معيار ECMA-262 لغة ECMASCRIPT. تعتمد كل من JavaScript و ActionScript كما نحن على دراية بها على ECMASCRIPT. حاليًا ، يستخدم السائد الإصدار 5 ، ومحرك V8 من Google هو تطبيق هذا.
مرحبا جافا سكريبت
JavaScript هي لغة نصية تتطلب مترجمًا لتفسير وتنفيذ. يمكنك شرح JavaScript في المتصفح أو استخدام Node.js مباشرة ، والذي يدمج محرك Google V8 JavaScript. نظرًا لأن Node.js مناسب جدًا للاستخدام ، فأنا أستخدم Node.js هنا لشرح تنفيذ JavaScript. انظر الآن إلى أول برنامج JavaScript:
نسخة الكود كما يلي:
// test.js
console.log ("Hello JavaScript") ؛
تنفيذ هذا البرنامج:
نسخة الكود كما يلي:
Node Test.JS
قواعد
تعليقات
يستخدم JavaScript نفس طريقة التعليقات التوضيحية مثل C ++ ، // للتعليق التوضيحي الخط الواحد ، / * * / للتعليقات التوضيحية متعددة الخطوط.
نوع الرقم
يحتوي JavaScript على نوع واحد فقط من النوع العددي ، وهو رقم عائم 64 بت. نوع الرقم له قيمتان خاصتان ، نان وفينيتي. معنى نان ليس رقمًا (وليس رقمًا). استخدم الوظيفة Isnan للتحقق مما إذا كانت NAN. القيمة اللانهائية تعني اللانهاية. في كائن الرياضيات ، هناك مجموعة من الأساليب لمعالجة الأرقام ، على سبيل المثال: يتم استخدام طريقة Math.Floor لتتجول.
خيط
يمكن لف السلسلة الحرفية في عروض أسعار واحدة أو مزدوجة ، ويتم استخدام الأحرف التي هربت (لا تختلف عن العديد من اللغات الأخرى). كل حرف في JavaScript هو بايتان ، والذي يستخدم مجموعة أحرف Unicode. السلسلة لها سمة طول:
نسخة الكود كما يلي:
"Hello" .length // القيمة 5 ، لاحظ أنها ليست "Hello" .Length ()
لا يمكن تغيير السلاسل (مثل لوا). بالإضافة إلى سمة الطول المذكورة هنا ، هناك بعض الطرق ، مثل:
نسخة الكود كما يلي:
'cat'.touppercase () ===' Cat '
إفادة
يتم استخدام عبارة VAR لإعلان المتغيرات المحلية ، وإلا فإن المتغير هو متغير عالمي ، وقيمة المتغير غير المحدد غير محدد:
نسخة الكود كما يلي:
وظيفة f () {
var localvar = 123 ؛
GlobalVar = 456 ؛
var i ؛ // قيمة I غير محددة
} ؛
f () ؛
console.log (GlobalVar) ؛ // نعم
console.log (localvar) ؛ // خطأ ، لم يتم تعريف LocalVar
تسمى مجموعة من العبارات ملفوفة بواسطة {} كتلة بيان. على عكس اللغات الأخرى ، لن تنشئ الوظائف في JavaScript نطاقات جديدة ، على سبيل المثال:
نسخة الكود كما يلي:
{
var v = 123 ؛
}
console.log (v) ؛ // نعم
إذا كان البيان
نسخة الكود كما يلي:
إذا (التعبير)
إفادة
أو
نسخة الكود كما يلي:
إذا (التعبير)
بيان 1
آخر
بيان 2
أو
نسخة الكود كما يلي:
إذا (التعبير 1)
بيان 1
آخر إذا (التعبير 2)
بيان 2
آخر إذا (التعبير 3)
بيان 3
آخر
بيان 4
قرر البيان IF تنفيذ أو تخطي بعض البيانات من خلال الحكم على أن قيمة التعبير صحيحة أو خاطئة. في JavaScript ، القيم التالية خاطئة (القيم الأخرى صحيحة):
1.false
2. نول
3.ededed
4. سلسلة فارغة
5.0
6.nan
البيان في ما إذا كان يمكن أن يكون بيان أو كتلة بيان.
بيان التبديل
نسخة الكود كما يلي:
التبديل (n) {
الحالة 1: // إذا كانت n تساوي 1
// تنفيذ كتلة الكود
استراحة؛
الحالة 2: // إذا كان n يساوي 2
// تنفيذ كتلة الكود
استراحة؛
افتراضي: // إذا لم يكن n 1 ولا 2
// تنفيذ كتلة الكود
استراحة؛
}
يتم استخدام Break هنا للخروج من عبارة حلقة أو بيان التبديل. في JavaScript ، هناك عاملان يقارنان ما إذا كانت قيمتان متساوية:
1. == (المقابلة لـ! = المشغل) ، والمتساوي ، ونوعين المعاملين مختلفان. يحاول هذا المشغل تحويل نوع المعامل قبل المقارنة ، على سبيل المثال:
نسخة الكود كما يلي:
var x = 1 ؛
x == 1 ؛ // حقيقي
x == "1" ؛ // حقيقي
2. === (المقابلة لـ! == عامل التشغيل) ، وهو متساوٍ تمامًا ، يقارن معاملتين ، ولا يؤدي تحويل نوع المعامل ، على سبيل المثال:
نسخة الكود كما يلي:
var x = 1 ؛
x === 1 ؛ // حقيقي
x === "1" ؛ // خطأ شنيع
تجدر الإشارة إلى أن NAN وأي قيمة ليست متساوية. إذا كان x نان ، فإن x! == x (يحمل فقط لل NAN). يمكننا تنفيذ وظيفة isnan مثل هذا:
نسخة الكود كما يلي:
وظيفة isnan (n) {
العودة n! == n ؛
}
يتم تحويل بيان التبديل أعلاه إلى IF بيان على النحو التالي:
نسخة الكود كما يلي:
إذا (n === 1)
// ...
آخر إذا (n === 2)
// ...
آخر
// ...
بينما والبيانات في حين
نسخة الكود كما يلي:
بينما (التعبير)
إفادة
إذا كان التعبير صحيحًا ، كرر البيان حتى يكون التعبير خطأ.
نسخة الكود كما يلي:
يفعل
إفادة
بينما (التعبير) ؛
على غرار حلقة الوقت ، فإنه ينفذ البيان أولاً ثم يتحقق من التعبير الشرطي.
للبيان
نسخة الكود كما يلي:
لـ (تهيئة ؛ اختبار ؛ الزيادة)
إفادة
أولاً ، يتم تنفيذ التهيئة مرة واحدة (عادة ما تستخدم لتهيئة متغيرات الحلقة) ، ثم اختبار حالة الاختبار (عادة ما يتم استخدامه لاختبار متغيرات الحلقة) ، إذا كانت حالة الاختبار خاطئة ، وتتوقف الحلقة ، وإلا مثال على الاستخدام:
نسخة الكود كما يلي:
لـ (var i = 0 ؛ i <5 ؛ ++ i) {
console.log (i) ؛
}
يتم استخدام شكل آخر من أجل التعداد جميع أسماء السمات لكائن ما:
نسخة الكود كما يلي:
لـ (متغير في الكائن)
إفادة
مثال:
نسخة الكود كما يلي:
var obj = {
ج: 1 ،
ب: 2 ،
ج: 3
} ؛
لـ (اسم var في OBJ)
console.log (الاسم) ؛
تجدر الإشارة إلى أننا نستخدم طريقة HasownProperty للتحقق مما إذا كان اسم العقار هو الكائن أو الموجود في سلسلة النموذج الأولي (سلسلة النموذج الأولي ، سيتم تقديم النموذج الأولي في المقالة التالية):
نسخة الكود كما يلي:
لـ (var in obj) {
if (obj.hasownproperty (var)) {
// ...
}
}
بيان العودة
يتم استخدام عبارة الإرجاع لجعل الوظيفة تعيد قيمة. إذا كانت الوظيفة لا تستخدم الإرجاع بشكل صريح ، فإنها تُرجع غير محددة:
نسخة الكود كما يلي:
الدالة f () {}
var v = f () ؛ // v === غير محددة
؟: مشغل مشروط (المشغل الثلاثي الوحيد في جافا سكريبت)
؟: موجودات مشروطة في العديد من لغات البرمجة. عندما يكون المعامل الأول صحيحًا ، يقوم المشغل بإرجاع قيمة المعامل الثاني ، وإلا يتم إرجاع قيمة المعامل الثالث. مثال:
نسخة الكود كما يلي:
وظيفة ABS () {
إرجاع x> 0؟ x: -x ؛
}
عامل typeof
يتم استخدام مشغل typeof للحصول على نوع المتغير ، وتشمل قيمة الإرجاع الخاصة به:
1.'number '
2. '
3.''boolean
4.''ununed ''
5.'sfunction '
6. 'object'
النتيجة التي تم إرجاعها بواسطة typeof null الخاص هي "كائن". أمثلة حول typeof:
نسخة الكود كما يلي:
var a = typeof 'hello' ؛ // A === 'String'
var b = typeof null ؛ // b === 'كائن'
+ مشغل
يمكن استخدام عامل التشغيل + في JavaScript لعمليات الإضافة أو سلسلة سلسلة:
نسخة الكود كما يلي:
var message = 'hello' + 'World' ؛ // message === 'HelloWorld'
&& و || المشغلين
يقوم مشغل && بإرجاع قيمة المعامل الأول عندما يكون المعامل الأول خطأ ، وإلا فإنه يعيد قيمة المعامل الثاني.
|| يقوم المشغل بإرجاع قيمة المعامل الأول عندما يكون المعامل الأول صحيحًا ، وإلا فإنه يعيد قيمة المعامل الثاني.
نسخة الكود كما يلي:
var a = 1 && true ؛ // a === true
var b = 1 || خطأ شنيع؛ // b === 1
|| تعبير:
نسخة الكود كما يلي:
الاسم = الاسم || 'مجهول'؛ // اضبط القيمة الافتراضية "غير معروفة" للاسم