3 דברים שאתה לא יודע על מערכי JavaScript
מערכים הם תכונה בשימוש נרחב של שפות תכנות; הם משתנים מיוחדים זה יכול לשמש לאחסון ערכים מרובים בו זמנית. עם זאת, כאשר מדובר ב- JavaScript, קל כמו שזה ללמוד, תמיד יש יותר לחקור.
בהודעה זו, נסתכל על שלוש תכונות פחות ידועות וחשובות של מערכי JavaScript שאולי לא ידעת לפני כן.
1. הוסף מאפיינים מותאמים אישית למערכים
אם היית סורקת את האינטרנט מחפש הגדרה יסודית של מערכים JavaScript, תגלו כי כמעט כל מקור בלי להיכשל יהיה מערך מערך כמו מה זה באמת J, חפץ.
למעשה, כמעט כל מה שאנחנו מתמודדים עם JavaScript יהיה להתברר להיות אובייקט. קיימים שני סוגים של סוגי נתונים ב- JavaScript, פרימיטיבים ו חפצים, אבל פרימיטיבים תמיד עטופים בתוך חפצים.
מערך, פונקציה, תאריך, וכו 'הם אובייקטים מוגדרים מראש כי יש מובנית שיטות, תכונות תחביר סטנדרטי שלהם.
מערכי JavaScript יכולים להיות שלושה סוגים שונים של נכסיםYou
- מדדי מערך הם גם נכסים
- תכונות מובנות
- מאפיינים מותאמים אישית אתה יכול להוסיף בעצמך
שני הראשונים הם ידועים יותר, אתה יכול להשתמש בהם כל יום, אבל בואו לראות אותם במהירות לפני לקפוץ לתוך איך אתה יכול להוסיף נכס מותאם אישית משלך למערך.
מדדים כמאפיינים
מערכי JavaScript להשתמש סוגר מרובע תחביר, כמו var ary = ["orange", "apple", "lychee"];
.
מדדים של רכיבי מערך הם בעצם נכסים איפה ה שמות רכוש הם תמיד מספרים לא שליליים שלמים.
ה זוג אלמנט אינדקס של מערך דומה ל זוג ערך מפתח של אובייקט.
מדדים הם תכונה ייחודית של אובייקט מערך, ובניגוד תכונות מובנית אחרים שלה, הם יכולים להיות עם תחביר בסוגריים לבד, כמו ארי [3] = "אפרסק";
.
מאפיינים מובנים
מערכים גם תכונות מובנות, כמו array.length
. ה אורך
הנכס נושא ערך שלם מציין את אורך המערך.
באופן כללי, תכונות מובנות נמצאות לעתים קרובות באובייקטים JavaScript מוגדרים מראש כמו מערכים. יחד עם שיטות מובנית, הם עוזרים התאמה אישית של חפצים גנריים כך שהאובייקטים מתאימים לצרכים שונים.
תכונות מובנות ניתן לגשת עם או אובי
או ה אובייקט ["מפתח"]
תחביר. אז אתה יכול גם לכתוב ארי ["אורך"]
כדי לגשת לאורך של מערך.
יצירת מאפיינים מותאמים אישית עבור אובייקט מערך
עכשיו, בוא נדבר הוספת הנכסים שלך למערכים. מערכים הם אובייקטים מוגדרים מראש שמאחסנים סוגים שונים של ערכים במדדים שונים.
בדרך כלל אין צורך להוסיף מאפיינים מותאמים אישית למערך; זו אחת הסיבות למתחילים הם בדרך כלל לא לימד על תכונה זו. למעשה, אם אתה רוצה לטפל במערך כמו אובייקט רגיל על ידי הוספת זוגות ערך מפתח אליו, אתה יכול גם כן להשתמש אובייקט רגיל למטרה שלך. אבל, זה לא אומר שאין מקרים מיוחדים שבו אתה יכול לנצל את העובדה כי מערך הוא אובייקט, על ידי הוספת אחד או יותר מאפיינים מותאמים אישית אליו.
לדוגמה, ניתן להוסיף מאפיין מותאם אישית למערך זה מזהה את "הסוג" או את "הכיתה" של מרכיביו, כמו שאתה יכול לראות את זה בדוגמה הבאה.
var ary = ["orange", "apple", "lychee"]; ary.itemClass = "פירות"; console.log (Ary + "הם" + ary.itemClass); // "תפוזים, תפוח, ליצ'י הם פירות"
שים לב כי המאפיין המותאם אישית שתוסיף למערך הוא ניתן לספור, כלומר זה יהיה הרים על ידי לולאות כגון ב
הצהרה.
2. לולאה דרך אלמנטים מערך
אתה כנראה אומר "אני כבר יודע את זה", וזה כנראה נכון, אתה כבר יודע איך לעבור אלמנטים מערך. אבל זה נכון גם לומר כי "לולאה דרך אלמנטים מערך" הוא קצת מופשט, כמו מה שאנחנו בעצם לולאה דרך הם מדדי המערך.
מאחר שמדדי המערכים מורכבים רק מספרים שלמים לא שליליים, אנו מחזירים ערך שלם בדרך כלל החל מאפס ומסתיים באורך המלא של המערך, ולאחר מכן להשתמש בערך איטרטיבי זה כדי לגשת אלמנט המערך באינדקס נתון.
עם זאת, מאז ECMAScript6, יש דרך ישירות לולאה דרך ערכי מערך ללא טרחה עם מדדים, וכי ניתן לעשות זאת באמצעות בשביל
לולאה.
במערך, בשביל
לולאה יהיה לולאה דרך אלמנטים מערך לפי סדר המדדים, במילים אחרות זה יטפל איטרציה על המדדים מקבל ערך מערך קיים במדד נתון. לולאה זו היא אידיאלית אם אתה רק רוצה לולאה דרך כל האלמנטים מערך, ולעבוד איתם.
var ary = ["orange", "apple", "lychee"]; עבור (תן פריט של ארי) console.log (פריט); // "כתום", "תפוח", "lychee"
לשם השוואה, עם הרגיל ל
לולאה, אנחנו מקבלים את המדדים במקום את הערכים כפלט.
var ary = ["orange", "apple", "lychee"]; עבור (var item = 0; item < ary.length; item++) console.log(item); // 0, 1, 2
3. מספר האלמנטים אינו באורך
בדרך כלל, כאשר אנו מדברים על אורך מערך, אנו חושבים שמדובר במספר הערך שמערך מחזיק, או באורך שהעברנו למערך באופן ידני. עם זאת, במציאות, אורך המערך תלוי המדד הקיים הגדול ביותר בתוך זה.
אורך הוא גמיש מאוד. אם כבר תיקנת את אורך המערך מראש או לא, אם תמשיך להוסיף ערכים למערך, אורכו ממשיך לגדול בהתאם.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6
בדוגמה לעיל, ניתן לראות כי נתתי את המערך רק ערך אחד במדד 5, והאורך הופך להיות 6. עכשיו, אם אתה חושב על ידי הוספת ערך במדד 5, המערך יצר את המדדים של 0 עד 4 באופן אוטומטי , לאחר מכן ההנחה שלך שגויה. יש באמת אין מדדים קיימים 0 עד 4 במערך זה. אתה יכול לבדוק את זה באמצעות in
מפעיל.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 console.log (0 ב- ary); // שווא
המערך ארי
זה מה שאנחנו מכנים "דליל" מערך, מערך שבו המדדים לא נוצרים ברציפות, ו יש פערים. ההפך של מערך "דליל" הוא "צפוף" מערך כאשר המדדים קיימים באופן רציף במערך, ומספר הרכיבים זהה ל אורך
.
ה אורך
רכוש הוא גם מסוגל חותך מערך, וודא שהמדד הגבוה ביותר הקיים במערך הוא תמיד פחות מעצמו, כפי ש אורך
הוא תמיד מספרית יותר מהמדד הגבוה ביותר כברירת מחדל.
בדוגמה הבאה, תוכל לראות כיצד אנו מאבדים את הרכיב באינדקס 5 על ידי הקטנת אורך
של ה ארי
מערך.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 ary.length = 2; console.log (ary.length); // 2 console.log (ary [5]); // und מוגדר
לקריאה נוספת
- 10 מונחים של JavaScript שאתה צריך לדעת עכשיו
- 4 לא כל כך נפוץ אבל מועיל הצהרות Javascript אתה צריך לדעת
- קוד אופטימיזציה עם JS רמז - כלי jinting javascript