JavaScript هي لغة نصية حرفية ، وهي لغة ديناميكية وضعيفة قائمة على النموذج الأولي مع أنواع دعم مدمجة. يسمى مترجمها محرك JavaScript. إنه جزء من المتصفح ويستخدم على نطاق واسع في لغة البرمجة النصية العميل. تم استخدامه لأول مرة على HTML (تطبيق تحت لغة الترميز العالمي القياسية) صفحات الويب لإضافة وظائف ديناميكية إلى صفحات الويب HTML.
ولدت JavaScript لأكثر من 20 عامًا ، والطريقة التي استخدمناها لحلق صفيف هي كما يلي:
لـ (var index = 0 ؛ index <myarray.length ؛ index ++) {console.log (myarray [index]) ؛}منذ JavaScript5 ، بدأنا في استخدام طريقة Foreach المدمجة:
myarray.foreach (function (value) {console.log (value) ؛}) ؛طريقة الكتابة أبسط بكثير ، ولكن لديها أيضًا أوجه القصور: لا يمكنك مقاطعة الحلقة (باستخدام العبارات أو استخدام العبارات.
هناك أيضًا طريقة حلقة في JavaScript :.
تم تصميم حلقة العمل فعليًا لحلق الكائنات "التعداد":
var obj = {a: 1 ، b: 2 ، c: 3} ؛ for (var prop in obj) {console.log ("obj.يمكنك أيضًا استخدامه لحلق صفيف:
لـ (VAR INDEX في myarray) {// هذه console.log (myarray [index]) ؛}لا يُنصح باستخدام صفيف ، لأنه على عكس الكائنات ، يختلف فهرس الصفيف عن خصائص الكائن العادية وهو مؤشر تسلسل عددي مهم.
باختصار ، في IN هي طريقة تستخدم للحلق من خلال الكائنات مع مفاتيح السلسلة.
من أجل حلقة
تقدم JavaScript6 طريقة حلقة جديدة ، وهي الحلقة التي تعتبر أبسط من الحلقة التقليدية ، وفي الوقت نفسه يعوض عن أوجه القصور في الحلقات في الحلقات.
دعونا نلقي نظرة على بناء الجملة:
لـ (var value of myarray) {console.log (value) ؛}يبدو أن بناء جملة من أجل العمل يشبه إلى حد كبير ، ولكنه يحتوي على وظائف أكثر ثراءً ويمكن أن يحلق الكثير من الأشياء.
مثال على استخدام الحلقة:
دع ITERBLE = [10 ، 20 ، 30] ؛ لـ (دع قيمة ITERBLE) {console.log (القيمة) ؛} // 10 // 20 // 30يمكننا استخدامه بدلاً من ذلك ، بحيث يصبح متغيرًا ثابتًا غير معدّل في الحلقة.
دع ITERBILE = [10 ، 20 ، 30] ؛ لـ (قيمة const من itervable) {console.log (القيمة) ؛} // 10 // 20 // 30حلقة سلسلة:
دع itervable = "boo" ؛ من أجل (دع قيمة itervable) {console.log (value) ؛} // "b" // "o" // "o" leferive = new uint8array ([0x00 ، 0xff]) ؛ for (let viull of itervable) {console.log (value) ؛ 2] ، ["C" ، 3]]) ؛ for (دع [مفتاح ، قيمة] من iterable) {console.log (value) ؛} // 1 // 2 // 3for (دعنا إدخال itervable) {console.log (enter) ؛} // [a ، 1] // [b ، 2] // itelfor) {console.log (value) ؛} // 1 // 2 // 3حلقة مجموعة DOM
حلقة مجموعات DOM ، مثل Nodelist. ناقشنا كيفية حلقة Nodelist من قبل. أصبح الآن مناسبًا ، يمكنك استخدام الحلقة مباشرة:
// ملاحظة: لن يعمل هذا فقط في الأنظمة الأساسية التي قامت // بتطبيق nodelist.prototype [symbor.iterator] اسمح altovalParaphs = document.queryselectorall ("article> p") ؛ for (دع فقرة articleParagraphs) {paragraph.classlist.add ("read") ؛}}}حلقة كائن مع سمة التعداد
لا يمكن استخدام حلقة FOROF مباشرة على الكائنات العادية ، ولكن إذا قمنا بحلق وفقًا للخصائص التي يتمتع بها الكائن ، يمكننا استخدام الكائن المدمج. keys ():
لـ (VAR Key of Object.Keys (someObject)) {console.log (key + ":" + someObject [key]) ؛}حلقة مولد
يمكننا أن نحلق من خلال مولد:
الوظيفة* fibonacci () {// a generator functionlet [prev ، curr] = [0 ، 1] ؛ بينما (صحيح) {[prev ، curr] = [curr ، prev + curr] ؛ العائد curr ؛}} لـ (دع n من fibonacci ()) {console.log (n) ؛