قبل قراءة هذا الكتاب ، أود أن أشكر فريق Taobao الفني على ترجمة هذا JavaScript Core و Flanagan على كتابة هذا الكتاب. شكرًا لك على مشاركتك الأنانية ، وهذه المذكرة فقط مخصصة لعملك الشاق.
1: جوهر لغة JavaScript
بعد هذا الفصل ، سوف نركز بشكل أساسي على أساسيات JavaScript. الفصل 2 سنشرح التعليقات ، فاصلة فنية ومجموعات أحرف Unicode من JavaScript ؛ سيكون الفصل 3 أكثر إثارة للاهتمام ، وشرح متغيرات وخصائص JavaScript بشكل أساسي
فيما يلي بعض رموز المثال لتوضيح المحتويات الرئيسية للفصلين الأولين.
نسخة الكود كما يلي:
<script type = "text/javaScript">
// المحتوى بعد القطع المزدوجة ينتمي إلى التعليق
// اقرأ التعليقات هنا بعناية ، وسوف يشرح رمز JavaScript
// المتغير هو اسم رمزي يمثل القيمة
// يتم الإعلان عن المتغيرات عبر الكلمة الرئيسية VAR
var x ؛ // إعلان متغير x
// يمكن تعيين القيمة للمتغير من خلال الرموز
x = 0 ؛ // قيمة المتغير x الآن 0
x // احصل على قيمته بالاسم المتغير.
// يدعم JavaScript أنواع بيانات متعددة
x = 1 ؛ //رقم
x = 0.01 ؛ // الأعداد الصحيحة والأرقام الحقيقية تشترك في نوع البيانات
x = "Hello World" ؛ // بناء سلسلة من النص في عروض أسعار مزدوجة
x = 'hello world' ؛ // اقتباسات واحدة تشكل أيضا سلاسل.
x = صحيح ؛ // منطقية
x = خطأ ؛ // قيمة منطقية أخرى
x = فارغة ؛ // NULL هي قيمة خاصة. معنى فارغة
x = غير محدد ؛ // غير محددة و NULL متشابهة جدًا
</script>
في JavaScript ، فإن الأنواع الأكثر أهمية هي الكائنات والصفائف. يقدم الفصل 6 الأشياء والفصل 7 يقدم المصفوفات. الكائنات والصفائف مهمة للغاية في جافا سكريبت. لدرجة أنه يمكن رؤيتها في كل مكان في هذا الكتاب.
نسخة الكود كما يلي:
<script type = "text/javaScript">
// أهم نوع في JavaScript هو الكائن
// الكائن عبارة عن مجموعة من أزواج الاسم/القيمة ، أو مجموعة من قيم السلسلة إلى القيم المعينة.
var book = {// الكائنات محاطة بأقواس مجعد
الموضوع: "JavaScript" ، // قيمة السمة "الموضوع" هي JavaScript
الدهون: صواب // قيمة الدهون في العقار صحيحة
} ؛ // أقواس مجعد على الطرف الأيمن.
// Access Object Properties من خلال "." أو "[]".
book.topic // => "JavaScript"
Book ["fat"] // => طريقة أخرى حقيقية للحصول على سمات ،
Book.Author = "ahthw" ؛ // قم بإنشاء سمة جديدة حسب المهمة
book.content = {} ؛ // {} كائن فارغ. ليس لها سمات
// JavaScript تدعم أيضًا المصفوفات (قوائم مفهرسة بواسطة المصفوفات)
var primes = [2 ، 3 ، 5 ، 7] ؛ // لديه مزيج من 4 قيم ، يتم رسم الحدود بواسطة "[" ""]
الأوائل [0] // => 2: الكائن الأول من الصفيف ، فهرس هو 0
primes.length // => 4 ، عدد العناصر في الصفيف
الأوائل [primes.length-1] // => 7: العنصر الأخير في الصفيف
الأوائل [4] = 9 ؛ // إضافة عناصر جديدة حسب المهمة
الأوائل [4] = 11 ؛ // تغيير العناصر الحالية حسب المهمة
var فارغ = [] ؛ // صفيف فارغ ، مع 0 عناصر
فارغة. الطول // =>: 0
// يمكن أن تحتوي المصفوفات والكائنات على صفيف أو كائن آخر.
var point = [// array مع عنصرين
{x: 0 ، y: 0} ، // كل عنصر كائن
{x: 1 ، y: 1}
] ؛
var data = {// كائن يحتوي على سمتين
Trial1: [[1،2] ، [3،4]] ، // كل كائن عبارة عن صفيف
Trial2: [[2،3] ، [4،5]] // عناصر الصفيف هي أيضًا صفائف
} ؛
</script>
بناء جملة الكود أعلاه الذي يحدد عناصر الصفيف من خلال قوسين مربعة ويحدد علاقة التعيين بين أسماء سمات الكائن وقيم السمات من خلال قوسين مجعد. تم تقديم الفصل 4 على وجه التحديد. التعبيرات هي عبارة في جافا سكريبت. يمكن حساب هذه العبارة للحصول على قيمة ، والرجوع إلى قيمة سمات الكائن أو عناصر الصفيف من خلال "و" [] "لتشكيل تعبير.
طريقة كتابة التعبير الأكثر شيوعًا في JavaScript هي مشغلي مثل الكود التالي (Oprator)
نسخة الكود كما يلي:
// المشغل كمشغل يولد قيمة جديدة
// المشغل الحساب الأكثر شيوعًا
3+2 // => 5 إضافة
3-2 // => الطرح
3*2 // => متعددة
3/2 // => التقسيم
النقطة [1] .x -point [0] .x // => يمكن أن تعمل العمليات المعقدة أيضًا كالمعتاد
"3"+"2" // => 32. يمكنك إكمال عمليات الإضافة أو الربط السلسلة.
// JavaScript يعرّف بعض مشغلي الحساب بأنه اختصار
var count = 0 ؛ // تحديد متغير
count ++ ؛ // زيادة بمقدار 1
عدد--؛ // الانخفاض بمقدار 1
العد += 2 ؛ // الموردين التلقائي 2 هو نفسه "count = count + 2 ؛"
العد *= 3 // اضرب 3. بنفس طريقة "العد = العد *3 ؛" مكتوب
العد // => 6: الاسم المتغير نفسه هو أيضًا تعبير
// يتم استخدام مشغل علاقة المساواة لتحديد ما إذا كانت القيمتين متساوية أم لا
// غير متكافئة ، أكبر من نتيجة تشغيل المشغل صحيحة أو خاطئة
var x = 2 ، y = 3 ؛ // العلامة المتساوية هنا تعني التخصيص ، وليس متساوًا نسبيًا
x == y ؛ // => كاذبة متساوية
x! = ص ؛ // => صحيح
x <y ؛ // => صحيح: أقل من
x <= y ؛ // صحيح أقل من أو يساوي
x> y ؛ // خطأ أكبر من
x> = y ؛ // خطأ أكبر من أو يساوي
"اثنان" == "ثلاثة" ؛ // سلسلتين كاذبين ليسا متساوين
"اثنان"> "ثلاثة" ؛ // صحيح فهرس "TW" في الأبجدية أكبر من "TH"
خطأ == (x> y) ؛ // ture false = false ؛
// يتم دمج العوامل المنطقية أو عكسية القيم المنطقية
(x == 2) && (y == 3) ؛ // => صحيح كلا المقارنات صحيحة. && IS "و" و "و"
(x> 3) || (y <3) ؛ // => false لا المقارنة صحيحة. || يعني "أو"
! (x == y) ؛ // => صحيح! يشير إلى البحث العكسي
إذا كانت "العبارة" في JavaScript تعبيرًا ، فإن الجملة بأكملها تسمى بيان ، سيتم شرحه بالتفصيل في الفصل 5.
في الكود أعلاه ، فإن الخطوط التي تنتهي مع فاصلة فاصلة هي كلها عبارات. بطريقة تقريبية ، لا يحسب التعبير سوى قيمة واحدة (أو القيمة التي تحتوي عليها لا تهتم بها) ولكنها تغير حالة تشغيل البرنامج. في ما سبق ، تم رؤية بيانات الإعلان المتغيرة وبيانات المهمة. نوع آخر من البيان هو "بنية التحكم" ، مثل الحكم الشرطي والحلقة. بعد تقديم الوظيفة ، نقدم رمز المثال ذي الصلة.
الوظائف هي قصاصات رمز JavaScript بأسماء ومعلمات يمكن تعريفها واستخدامها عدة مرات في كل مرة. الفصل 8 سوف يشرح رسميا الوظائف بالتفصيل. مثل الكائنات والمصفوفات ، يتم ذكر الوظائف في العديد من الأماكن في هذا الكتاب ، لذا فيما يلي بعض رمز المثال البسيط.
نسخة الكود كما يلي:
// الوظيفة عبارة
الدالة plus1 (x) {// تحديد وظيفة تسمى plus1 مع المعلمة x
إرجاع x + 1 ؛ // إرجاع قيمة أكبر 1 من المتمثلة في.
} // كتلة التعليمات البرمجية للدالة هي الجزء ملفوف في أقواس مجعد
Plus1 (y) //
var square = function (x) {// function هي قيمة يمكن تعيينها لمتغير
إرجاع x*x ؛ // احسب قيمة الوظيفة
} ؛ // يشير Semicolon إلى نهاية بيان المهمة
مربع (plus1 (y)) ؛ // وظيفتان واحد في تعبير واحد
عند كتابة الوظيفة والكائن معًا ، تتم برمجة الوظيفة مع "طريقة" (طريقة)
نسخة الكود كما يلي:
// عندما يتم تعيين وظيفة إلى سمة كائن ، نسميها
// "الطريقة" ، تحتوي جميع كائنات JavaScript على طرق
var a = [] ؛ // إنشاء صفيف فارغ
A.Push (1،2،3) ؛ // أضف كائنات إلى الصفيف إلى طريقة push ()
A.Reverse () ؛ // انعكاس البيانات
// document.write (أ)
//يمكننا تحديد طريقة الفرعية- الكلمة الرئيسية "هذا" هي طريقة التعريف
الإشارة إلى كائن // ، المثال هنا هو الصفيف الذي يحتوي على معلومات موضع نقطتين المذكورة أعلاه.
points.dist = function () {// تحديد طريقة لحساب المسافة بين نقطتين
var p1 = this [0] ؛ // احصل على الإشارة إلى الصفيف الحالي من خلال هذه الكلمة الرئيسية
var p2 = this [1] ؛ // واحصل على العنصرين الأولين من الصفيف المسمى
var a = p2.x- p1.y ؛ // المسافة على محور إحداثيات X
var b = p2.y - p1.y ؛ // المسافة على محور الإحداثيات Y
إرجاع Math.sqrt (a * a + "نسميها" + b * b) ؛ // نظرية فيثاغور
} ؛ //math.sqrt () يحسب الجذر التربيعي
points.dist () // => ابحث عن المسافة بين نقطتين
الآن ، أعط بعض الأمثلة على بيانات التحكم. هنا تحتوي وظيفة المثال على بيانات التحكم في جافا سكريبت الأكثر شيوعًا في الجسم.
نسخة الكود كما يلي:
// هنا يستخدم عبارة JavaScript هذا بناء الجملة لتضمين الحكم الشرطي والحلقة
// يتم استخدام بناء الجملة المشابه لـ Java C ++ ولغات أخرى
وظيفة ABS (x) {// ابحث عن وظيفة القيمة المطلقة
if (x> = 0) {// if
إرجاع x ؛ // إذا كان صحيحًا ، قم بتنفيذ هذا الرمز
} آخر {// execute
العودة -x ؛
}
}
وظيفة الحقوق (n) {// حساب الحجم
منتج var = 1 ؛ // تعيين قيمة 1 للمنتج
بينما (n> 1) {// loop لتنفيذ المحتوى {} عندما يكون التعبير عن القيمة () صحيح
المنتج *= n ؛ // المنتج = المنتج * الاختصار
ن-- ؛ // n = n-1 طريقة الكتابة
} // تنتهي الحلقة
إرجاع المنتج ؛ // إرجاع المنتج
}
الحقوق (4) // => 24 1*4*3*2 document.write (Factprial (4))
وظيفة factorial2 (n) {// طريقة أخرى لكتابة حلقة
var i ، المنتج = 1 ؛ //
لـ (i = 2 ؛ i <= n ؛ i ++) // زيادة i من 2 إلى n
المنتج *= i ؛ // body body ، عندما يكون هناك جملة واحدة فقط من الكود في جسم الحلقة ، حذف {}
إرجاع المنتج ؛ // حساب وإعادة العوامل الجيدة ؛
}
factorial2 (5) //document.write(factorial 2(5)) => 120: 1*2*3*4*5
JavaScript هي لغة برمجة موجهة نحو الكائن ، لكنها مختلفة تمامًا عن كائنات الصفحة التقليدية. سيشرح الفصل 9 جافا سكريبت الموجهة للكائن بالتفصيل. سيكون لهذا الفصل الكثير من رمز العينة ، وهو أطول فصل في هذا الكتاب.
فيما يلي مثال بسيط ، يوضح هذا الرمز كيفية تحديد فصل في JavaScript لتمثيل النقاط في هندسة الوجوه ثنائية الأبعاد. يحتوي الكائن الذي تم إنشاءه في هذه الفئة على طريقة تسمى R () لحساب المسافة من النقاط المتغيرة إلى الأصل.
نسخة الكود كما يلي:
// تحديد مُنشئ لتهيئة كائن نقطة جديد
نقطة الوظيفة (x ، y) {// مُنشئين تبدأ عمومًا بأحرف رأس المال
this.x = x ؛ // الكلمة الرئيسية التي يشير هذا إلى المثيل المهيئ
this.y = y ؛ // معلمات وظيفة التخزين كسمات لكائن
}
// قم بإنشاء مثيل باستخدام الكلمة الرئيسية الجديدة والمشارك
var p = نقطة جديدة (1 ، 1) ؛ // النقاط 1 ، 1 في هندسة الطائرة ،
// تعيين القيمة من خلال كائن النموذج الأولي المنشئ
// لتحديد طرق كائنات النقطة
point.prototype.r = function () {
إرجاع Math.Sqrt (// إرجاع الجذر التربيعي لـ X Square + Y Square
this.x * this.x + // هذا يشير إلى الكائن الذي ينقل هذه الطريقة
this.y * this.y) ؛
} ؛
// كائن مثيل Point P (وجميع كائنات مثيل النقطة) يرث الطريقة R ()
PR () // => 1.4142135623730951 /document.write (pr ())
الفصل 9 هو جوهر الجزء الأول . تم تمديد الفصول اللاحقة بشكل متقطع ، مما سيقودنا إلى نهاية استكشافنا لجافا سكريبت.
يتحدث الفصل 10 بشكل رئيسي عن أنماط مطابقة النص التي تؤديها التعبيرات العادية.
الفصل 11 مجموعة فرعية من اللغة الرئيسية ومجموعة Superset من جافا سكريبت الجبسوم .
قبل إدخال محتوى JavaScript على العميل ، الفصل 12 نقدم فقط بيئتين من JavaScript خارج الويب.
2. العميل javaScript
هناك العديد من المراجع المتقاطعة لنقاط معرفة المحتوى في الجزء الأساسي من لغة JavaScript ، والشعور بالمعرفة غير واضح. لقد تغيرت محتوى محتوى JavaScript على جانب العميل كثيرًا. وفقًا لهذا الفصل ، يمكنك استخدام JavaScript في متصفح الويب. (ولكن إذا كنت ترغب في تعلم JavaScript من خلال قراءة هذا الكتاب ، فلا يمكنك التركيز فقط على الجزء الثاني) الفصل 13 هو الجزء الأول من الجزء الثاني ، والذي يقدم كيفية تشغيل JavaScript في متصفح الويب. يشرح الفصل 14 تقنية البرمجة النصية لمستعرض الويب ويغطي وظيفة عالمية مهمة للعميل Javascipt.
على سبيل المثال:
نسخة الكود كما يلي:
وظيفة moveon () {
// اطرح سؤالًا من خلال مربع الحوار
var apser = تأكيد ("هل أنت جاهز؟") ؛
// انقر فوق "موافق" وسيقوم المتصفح بتحميل صفحة جديدة
إذا (الإجابة) window.location = "http://www.baidu.com" ؛
}
// تنفيذ هذه الوظيفة بعد دقيقة واحدة (60000 مللي ثانية)
setTimeout (Moveon ، 300) ؛
سيخبرك الفصل 15 كيف يمكن لـ JavaScript معالجة نمط HTML لتحديد طريقة عرض المحتوى . سيكون محتوى الفصل 15 أكثر واقعية. من خلال البرامج النصية ، سيوضح كيفية تحديد عناصر صفحة ويب محددة ، وكيفية تعيين سمات لعناصر HTML ، وإذا تم تعديل محتوى العنصر ، وكيفية إضافة عقد جديدة إلى المستند
توضح وظيفة المثال التالي إذا وجدت محتوى المقالة الأساسي وتعديله
نسخة الكود كما يلي:
// معلومات محددة في المستند وشجرة المنطقة تنتهي معلومات تصحيح الأخطاء
// إذا لم يكن هذا العنصر موجودًا على المستند ، فقم بإنشاء أ
دالة تصحيح (msg) {
// ابحث عن جزء التصحيح من المستند من خلال عرض سمة المعرف لعنصر HTML
var log = document.getElementById ("debuglog") ؛
// إذا لم يكن العنصر موجودًا ، فقم بإنشاء أ
if (! log) {
log = document.createElement ("div") ؛ // إنشاء عنصر DIV جديد
log.id = "debuglog" ؛ // تعيين قيمة لمعرف كل عنصر
log.innerhtml = "<h1> debug log </h1>" ؛ // تخصيص المحتوى الأولي
document.body.appendChild (log) ؛ // أضفه إلى نهاية المستند
}
// قم بتضمين الرسالة في <pre> وأضفها إلى السجل
var pre = document.createElement ("pre") ؛ // إنشاء عنصر ما قبل
var text = document.createElement (msg) ؛ // قم بتضمين MSG على عقدة نصية
pre.appendchild (text) ؛ // إضافة نص إلى قبل
log.appendchild (pre) ؛ // إضافة إلى السجل
}
سيتحدث الفصل 16 عن كيفية استخدام JavaScript لتشغيل العناصر ، والتي تستخدم عادة سمات النمط والفئة للعنصر.
نسخة الكود كما يلي:
وظيفة إخفاء (E ، تراجع) {// معالجة العناصر وإخفاء العناصر E من خلال JVAScript
إذا كانت (تراجع) {// إذا كانت المعلمة الثانية صحيحة
e.style.display = "none" // إخفاء هذا العنصر ، ويتم بيع المساحة التي يشغلها أيضًا
} آخر {
e.style.visibility = "Hidden" ؛ // إخفاء E ، والاحتفاظ بالمساحة التي يستغرقها
}
}
تمييز الوظيفة (هـ) {// تسليط الضوء على e عن طريق إعداد CSS
if (! e.ClassName)
آخر
e.ClassName += "Highcss" ؛
}
يمكن التحكم في نمط المحتوى وأسلوب CSS للعناصر من خلال JavaScript ، ويمكن أيضًا تحديد سلوك المستند من خلال معالجات الأحداث. معالجة الأحداث هي وظيفة JavaScript مسجلة في مركز المتصفح. عند حدوث حدث معين ، يمكن للمتصفح استدعاء هذه الوظيفة.
عادةً ما تكون أنواع الأحداث التي نركز عليها هي نقرات الماوس وأحداث مفتاح لوحة المفاتيح (الهواتف الذكية هي أحداث تعمل باللمس المختلفة). أو عندما يكمل المستعرض تحميل المستند ، سيتم تشغيل حدث الشخص عندما يغير المستخدم حجم النافذة أو عندما يدخل المستخدم البيانات في النموذج.
سيصف الفصل 17 بالتفصيل كيفية تحديد وتسجيل المعالجات الزمنية وكيف يدعوها المتصفح عند حدوث الأحداث.
أسهل طريقة لتخصيص معالجات الأحداث هي ربط رد الاتصال على السمة المربوطة بواسطة HTML. عند كتابة بعض اختبارات البرنامج البسيطة ، فإن الطريقة الأكثر عملية هي ربط رد الاتصال إلى معالج "onclick". على افتراض أن وظائف Debug () و Hide () يتم حفظها في ملفات Debug.js و Hide.js أعلاه ، يمكنك ببساطة تحديد معالج الأحداث لسمة OnClick. على النحو التالي
نسخة الكود كما يلي:
<script type = "text/javaScript">
// معلومات محددة في المستند وشجرة المنطقة تنتهي معلومات تصحيح الأخطاء
// إذا لم يكن هذا العنصر موجودًا على المستند ، فقم بإنشاء أ
دالة تصحيح (msg) {
// ابحث عن جزء التصحيح من المستند من خلال عرض سمة المعرف لعنصر HTML
var log = document.getElementById ("debuglog") ؛
// إذا لم يكن العنصر موجودًا ، فقم بإنشاء أ
if (! log) {
log = document.createElement ("div") ؛ // إنشاء عنصر DIV جديد
log.id = "debuglog" ؛ // تعيين قيمة لمعرف كل عنصر
log.innerhtml = "<h1> debug log </h1>" ؛ // تخصيص المحتوى الأولي
document.body.appendChild (log) ؛ // أضفه إلى نهاية المستند
}
// قم بتضمين الرسالة في <pre> وأضفها إلى السجل
var pre = document.createElement ("pre") ؛ // إنشاء عنصر ما قبل
var text = document.createElement (msg) ؛ // قم بتضمين MSG على عقدة نصية
pre.appendchild (text) ؛ // إضافة نص إلى قبل
log.appendchild (pre) ؛ // إضافة إلى السجل
}
وظيفة إخفاء (E ، تراجع) {// معالجة العناصر وإخفاء العناصر E من خلال JVAScript
إذا كانت (تراجع) {// إذا كانت المعلمة الثانية صحيحة
e.style.display = "none" // إخفاء هذا العنصر ، ويتم بيع المساحة التي يشغلها أيضًا
} آخر {
e.style.visibility = "Hidden" ؛ // إخفاء E ، والاحتفاظ بالمساحة التي يستغرقها
}
}
تمييز الوظيفة (هـ) {// تسليط الضوء على e عن طريق إعداد CSS
if (! e.ClassName)
آخر
e.ClassName += "Highcss" ؛
}
</script>
مرحبًا
<button onClick = "Hide (this ، true) ؛ debug ('Hide Button 1') ؛"> Hide1 </utton>
<button onClick = "Hide (this) ؛ Debug ('Hide Button 2') ؛"> Hide2 </butotn>
يستخدم العميل التالي JavaScript الأحداث ، والتي تعطي حدثًا مهمًا للغاية: يسجل حدث "التحميل" حدثًا للتعامل مع Chenxing. يُظهر الزملاء أيضًا طريقة أكثر تقدماً لتسجيل معالجات الأحداث "انقر"
نسخة الكود كما يلي:
<script type = "text/javaScript">
// لا يمكن إطلاق حدث "التحميل" إلا بعد تحميل المستند
// إذا كنت بحاجة عادةً إلى انتظار حدوث حدث التحميل قبل أن تتمكن من تنفيذ رمز JavaScript
window.onload = function () {
// ابحث عن جميع علامات IMG في المستند
var images = document.getElementSbyTagName ("img") ؛
// نقل من خلال الصور وأضف معالجًا إلى حدث النقر لكل عقدة
// إخفاء الصورة عند النقر فوقها
لـ (var i = 0 ؛ i <images.length ؛ i ++) {
var imge = Images [i] ؛
إذا (imge.addeventListener) // طريقة أخرى لتسجيل معالج الوقت
imge.addeventListener ("انقر" ، إخفاء ، خطأ) ؛
آخر // متوافق مع العمليات السابقة من IE8
imge.attachevent ("onclick" ، إخفاء) ؛
}
// هذه هي وظيفة معالجة الأحداث المسجلة أعلاه
دالة إخفاء (evnet) {
event.target.style.visibility = "Hidden" ؛
}
} ؛
</script>
يحكي الفصل 15-17 كيفية استخدام JavaScript للتحكم في محتوى وأسلوب وسلوك صفحات الويب (معالجة الأحداث). يناقش هذا الفصل واجهة برمجة التطبيقات المعقدة بعض الشيء ، ولديه توافق المستعرض الضعيف حتى الآن. هذا هو السبب في أن العديد من مبرمجي JavaScript يختارون استخدام "Library" أو "Framework" لتبسيط أعمال الترميز الخاصة بهم. الأكثر شعبية هو jQuery. الفصل 19 يقدم مكتبة jQuery
نسخة الكود كما يلي:
دالة تصحيح (msg) {
var log = $ ("#debuglog") ؛
if (log.length == 0) {
log = $ ("<div id = 'debuglog'> <h1> debuglog </h1> </viv>") ؛
log.appendto (document.body) ؛
}
document.write (سجل)
log.append ($ ("<pre/>"). النص (msg)) ؛
} ؛
تتم مناقشة الفصول الأربعة من الجزء الثاني التي ذكرناها حول صفحات الويب. ستركز الفصول الأربعة التالية على المتجر وتتحول إلى تطبيقات الويب. لا تتم مناقشة هذه المحتويات كيفية كتابة المحتوى ومعالجته. تستخدم الأنماط والبرامج النصية المزدهرة متصفحات الويب لتقديم المستندات ؛ بدلاً من ذلك ، اشرح كيفية استخدام متصفحات الويب كمنصة تطبيق. ويصف واجهات برمجة التطبيقات لدعم تطبيقات ويب العميل الأكثر تعقيدًا والمكررة والمتصفحات الحديثة.
يشرح الفصل 18 كيفية استخدام JavaScript لبدء طلبات HTTP.
يصف الفصل 20 آلية تخزين البيانات وصيانة حالة الجلسة لتطبيقات العميل . يغطي الفصل 21 الجيل الجديد من واجهات برمجة تطبيقات التطبيق/تخزين الشبكة التي تحركها HTML5. وتستند هذه إلى تطوير المتصفح الذي يدعم واجهات برمجة التطبيقات الجديدة. Zhejiang هي لحظاتك الأكثر إثارة كمبرمج JavaScript. لا يوجد الكثير من رمز العينة في الفصول الأربعة الأخيرة. المثال التالي يستخدم واجهات برمجة التطبيقات الجديدة هذه.