הפניית API של Console Utilities

Sofia Emelianova
Sofia Emelianova

Console Utilities API מכיל אוסף של פונקציות נוחות לביצוע משימות נפוצות: בחירת רכיבי DOM ובדיקה שלהם, שליחת שאילתות לאובייקטים, הצגת נתונים בפורמט קריא, השבתה והפעלה של הכלי לניתוח פרופיל, מעקב אחרי אירועי DOM וקריאות לפונקציות ועוד.

מחפשים את console.log(),‏ console.error() ואת שאר הפונקציות של console.*? הפניית Console API

$_

$_ מחזירה את הערך של הביטוי שהוערך לאחרונה.

בדוגמה הבאה מתבצעת הערכה של ביטוי פשוט (2 + 2). לאחר מכן מתבצעת הערכה של המאפיין $_, שמכיל את אותו ערך:

$_ הוא הביטוי שהוערך לאחרונה.

בדוגמה הבאה, הביטוי המוערך מכיל בהתחלה מערך של שמות. כשמבצעים הערכה של $_.length כדי למצוא את אורך המערך, הערך שמאוחסן ב-$_ משתנה לערך של הביטוי האחרון שהוערך, 4:

הערך של $_ משתנה כשמפעילים פקודות חדשות.

0$ עד 4$

הפקודות $0, $1, $2, $3 ו-$4 משמשות כהפניה היסטורית לחמישה רכיבי ה-DOM האחרונים שנבדקו בחלונית Elements או לחמישה אובייקטים האחרונים של JavaScript heap שנבחרו בחלונית Profiles. הפונקציה $0 מחזירה את הרכיב או את אובייקט ה-JavaScript שנבחרו לאחרונה, הפונקציה $1 מחזירה את הרכיב או את אובייקט ה-JavaScript שנבחרו בשנייה האחרונה, וכן הלאה.

בדוגמה הבאה, רכיב img נבחר בחלונית Elements. בתפריט Console, הערך של $0 הוערך ומוצג בו אותו רכיב:

דוגמה ל-0$.

בתמונה הבאה מוצג אלמנט אחר שנבחר באותו דף. הערך של $0 מתייחס עכשיו לרכיב שנבחר לאחרונה, בעוד ש-$1 מחזיר את הרכיב שנבחר קודם:

דוגמה ל-1$.

$(selector [, startNode])

הפונקציה $(selector) מחזירה את ההפניה לאלמנט ה-DOM הראשון עם הסלקטור ב-CSS שצוין. כשקוראים לפונקציה עם ארגומנט אחד, היא משמשת כקיצור דרך לפונקציה document.querySelector().

בדוגמה הבאה מוחזר הפניה לרכיב <img> הראשון במסמך:

דוגמה ל-$(&#39;img&#39;).

לוחצים לחיצה ימנית על התוצאה שהתקבלה ובוחרים באפשרות הצגה בחלונית הרכיבים כדי למצוא אותה ב-DOM, או באפשרות הצגה בדף כדי להציג אותה בדף.

הדוגמה הבאה מחזירה הפניה לרכיב שנבחר כרגע ומציגה את המאפיין src שלו:

דוגמה ל-$(&#39;img&#39;).src.

הפונקציה הזו תומכת גם בפרמטר שני, startNode, שמציין 'אלמנט' או צומת שבהם יתבצע החיפוש של הרכיבים. ערך ברירת המחדל של הפרמטר הזה הוא document.

בדוגמה הבאה מופיעה הפניה לאלמנט img הראשון שהוא צאצא של devsite-header-background, ומופיע המאפיין src שלו:

דוגמה ל-$(&#39;img&#39;, div).src.

הפונקציה$$(selector [, startNode])

$$(selector) מחזירה מערך של אלמנטים שתואמים לסלקטור ב-CSS שצוין. הפקודה הזו שקולה לקריאה ל-Array.from(document.querySelectorAll()).

בדוגמה הבאה נעשה שימוש ב-$$() to create an array of all <img> elements in the current document and displays the value of each element's src property:

let images = $$('img');
for (let each of images) {
  console.log(each.src);
}

דוגמה לשימוש ב-<!-- notranslate l10n-placeholder: l10n-placeholder3 -->()</code> כדי ליצור מערך של כל <code translate=רכיבי<img> שמופיעים במסמך הנוכחי אחרי הצומת שנבחר:

let images = $$('img', document.querySelector('.devsite-header-background'));
for (let each of images) {
  console.log(each.src);
}

דוגמה לשימוש ב-‎ $()‎ כדי לבחור את כל התמונות שמופיעות אחרי רכיב ה-div של הבחירה במסמך ולהציג את המקורות שלהן.

$x(path [, startNode])

פונקציית $x(path) מחזירה מערך של רכיבי DOM שתואמים לביטוי XPath הנתון.

לדוגמה, הקוד הבא מחזיר את כל האלמנטים מסוג <p> בדף:

$x("//p")

דוגמה לשימוש בבורר XPath.

בדוגמה הבאה מופיעים כל האלמנטים מסוג <p> שמכילים אלמנטים מסוג <a>:

$x("//p[a]")

דוגמה לשימוש בבורר XPath מורכב יותר.

בדומה לפונקציות הבוררות האחרות, לפונקציה $x(path) יש פרמטר שני אופציונלי, startNode, שמציין רכיב או צומת שבהם יתבצע החיפוש של הרכיבים.

דוגמה לשימוש בבורר XPath עם startNode.

clear()‎

clear() מנקה את ההיסטוריה של המסוף.

clear();

copy(object)

הפונקציה copy(object) מעתיקה ללוח ייצוג מחרוזת של האובייקט שצוין.

copy($0);

debug(function)

כשפונים לפונקציה שצוינה, מתבצעת הפעלה של מנתח הבאגים והוא מפסיק את הפעולה בתוך הפונקציה בחלונית Sources, ומאפשר לעבור על הקוד ולפתור את הבאגים.

debug(getData);

הפסקה בתוך פונקציה באמצעות debug().

משתמשים ב-undebug(fn) כדי להפסיק את העצירה בפונקציה, או משתמשים בממשק המשתמש כדי להשבית את כל נקודות העצירה.

מידע נוסף על נקודות עצירה זמין במאמר השהיית הקוד באמצעות נקודות עצירה.

dir(object)

dir(object) מציג רשימה בסגנון אובייקט של כל המאפיינים של האובייקט שצוין. השיטה הזו היא קיצור דרך לשיטה console.dir() של Console API.

בדוגמה הבאה מוצג ההבדל בין הערכת document.body ישירות בשורת הפקודה לבין שימוש ב-dir() כדי להציג את אותו רכיב:

document.body;
dir(document.body);

רישום ביומן של document.body עם פונקציית dir()‎ וגם בלי.

מידע נוסף זמין ברשומה console.dir() ב-Console API.

dirxml(object)

הפונקציה dirxml(object) מדפיסה ייצוג XML של האובייקט שצוין, כפי שהוא מופיע בחלונית Elements. השיטה הזו זהה לשיטה console.dirxml().

inspect(object/function)

inspect(object/function) פותח את הרכיב או האובייקט שצוינו בחלונית המתאימה ובוחר אותם: חלונית Elements לרכיבי DOM או חלונית Profiles לאובייקטים ב-heap של JavaScript.

בדוגמה הבאה נפתח הרכיב document.body בחלונית Elements:

inspect(document.body);

בדיקת רכיב באמצעות inspect().

כשמעבירים פונקציה לבדיקה, הפונקציה פותחת את המסמך בחלונית מקורות כדי שתוכלו לבדוק אותו.

getEventListeners(object)

הפונקציה getEventListeners(object) מחזירה את פונקציות ה-event listener שרשומים באובייקט שצוין. הערך המוחזר הוא אובייקט שמכיל מערך לכל סוג אירוע רשום (click או keydown, לדוגמה). המשתתפים בכל מערך הם אובייקטים שמתארים את המאזין הרשום לכל סוג. לדוגמה, בקוד הבא מפורטים כל בוררי האירועים הרשומים באובייקט המסמך:

getEventListeners(document);

הפלט של השימוש ב-getEventListeners().

אם רשום יותר ממאזין אחד באובייקט שצוין, המערך מכיל חבר לכל מאזין. בדוגמה הבאה, יש שני מאזינים לאירועים שרשומים באלמנט המסמך לאירוע click:

מספר מאזינים.

אפשר להרחיב כל אחד מהאובייקטים האלה כדי לבחון את המאפיינים שלו:

תצוגה מורחבת של אובייקט המאזין.

מידע נוסף זמין במאמר בדיקת מאפייני אובייקטים.

keys(object)

הפונקציה keys(object) מחזירה מערך שמכיל את שמות המאפיינים ששייכים לאובייקט שצוין. כדי לקבל את הערכים המשויכים של אותם מאפיינים, משתמשים בפונקציה values().

לדוגמה, נניח שהאפליקציה שלכם הגדירה את האובייקט הבא:

let player = {
    "name": "Parzival",
    "number": 1,
    "state": "ready",
    "easterEggs": 3
};

נניח שהערך player הוגדר במרחב השמות הגלובלי (לצורך הפשטה). הקלדה של keys(player) ו-values(player) ב-מסוף מניבה את התוצאות הבאות:

דוגמה לשיטות keys() ו-values().

monitor(function)

כשקוראים לפונקציה שצוינה, מתועדת במסוף הודעה שמציינת את שם הפונקציה ואת הארגומנטים שהועברו אליה בזמן הקריאה.

function sum(x, y) {
  return x + y;
}
monitor(sum);

דוגמה ל-method‏ monitor().

כדי להפסיק את המעקב, משתמשים ב-unmonitor(function).

monitorEvents(object [, events])

כשאחד מהאירועים שצוינו מתרחש באובייקט שצוין, אובייקט האירוע מתועד במסוף. אפשר לציין אירוע יחיד למעקב, מערך של אירועים או אחד מה'סוגים' הכלליים של האירועים שממופים לאוסף מוגדר מראש של אירועים. למטה מפורטות דוגמאות.

הקוד הבא עוקב אחרי כל אירועי שינוי הגודל באובייקט החלון.

monitorEvents(window, "resize");

מעקב אחר אירועים של שינוי גודל החלון.

הקוד הבא מגדיר מערך למעקב אחרי אירועי 'resize' וגם אחרי אירועי 'scroll' באובייקט החלון:

monitorEvents(window, ["resize", "scroll"])

אפשר גם לציין אחד מה'סוגים' הזמינים של אירועים, מחרוזות שממופות לקבוצות מוגדרות מראש של אירועים. בטבלה הבאה מפורטים סוגי האירועים הזמינים והמיפויים שלהם לאירועים:

סוג האירוע והאירועים הממופים התואמים
עכבר"mousedown",‏ "mouseup",‏ "click",‏ "dblclick",‏ "mousemove",‏ "mouseover",‏ "mouseout",‏ "mousewheel"
מקש"keydown",‏ "keyup",‏ "keypress",‏ "textInput"
מגע"touchstart",‏ "touchmove",‏ "touchend",‏ "touchcancel"
עוצמת הקול"resize",‏ "scroll",‏ "zoom",‏ "focus",‏ "blur",‏ "select",‏ "change",‏ "submit",‏ "reset"

לדוגמה, הקוד הבא משתמש בסוג האירוע 'key' לכל האירועים המרכזיים התואמים בשדה הטקסט להזנה שנבחר כרגע בחלונית Elements.

monitorEvents($0, "key");

בהמשך מוצגת דוגמה לפלט אחרי הקלדה של תווים בשדה הטקסט:

מעקב אחר אירועים מרכזיים.

כדי להפסיק את המעקב, משתמשים ב-unmonitorEvents(object[, events]).

profile([name]) ו-profileEnd([name])

הפקודה profile() מתחילה סשן של יצירת פרופילים של מעבד (CPU) ב-JavaScript עם שם אופציונלי. profileEnd() completes the profile and displays the results in the Performance > Main track.

כדי להתחיל ליצור פרופילים:

profile("Profile 1")

כדי להפסיק את יצירת הפרופיל ולראות את התוצאות בעמודה ביצועים > ראשי:

profileEnd("Profile 1")

התוצאה מופיעה בטראק ביצועים > ראשי:

פרופיל 1 בטראק הראשי של &#39;ביצועים&#39;.

אפשר גם להטמיע פרופילים. לדוגמה, אפשר להשתמש באפשרות הזו בכל סדר:

profile('A');
profile('B');
profileEnd('A');
profileEnd('B');

queryObjects(Constructor)

קוראים ל-queryObjects(Constructor) מהמסוף כדי להחזיר מערך של אובייקטים שנוצרו באמצעות המבנה המוגדר. לדוגמה:

  • queryObjects(Promise). מחזירה את כל המופעים של Promise.
  • queryObjects(HTMLElement). הפונקציה מחזירה את כל רכיבי ה-HTML.
  • queryObjects(foo), כאשר foo הוא שם של מחלקה. הפונקציה מחזירה את כל האובייקטים שנוצרו באמצעות new foo().

ההיקף של queryObjects() הוא הקשר הביצוע הנוכחי שנבחר במסוף.

table(data [, columns])

כדי לתעד נתוני אובייקטים בפורמט של טבלה, מעבירים אובייקט נתונים עם כותרות עמודות אופציונליות. זהו קיצור דרך ל-console.table().

לדוגמה, כדי להציג רשימת שמות באמצעות טבלה במסוף, מבצעים את הפעולות הבאות:

let names = [
  { firstName: "John", lastName: "Smith" },
  { firstName: "Jane", lastName: "Doe" },
];
table(names);

דוגמה ל-method‏ table().

undebug(function)

undebug(function) מפסיק את ניפוי הבאגים של הפונקציה שצוינה, כך שכאשר קוראים לפונקציה, כבר לא קוראים לניפוי הבאגים. האפשרות הזו משמשת בשילוב עם debug(fn).

undebug(getData);

unmonitor(function)

unmonitor(function) מפסיק את המעקב אחרי הפונקציה שצוינה. משתמשים בה בשילוב עם monitor(fn).

unmonitor(getData);

unmonitorEvents(object [, events])

unmonitorEvents(object[, events]) מפסיק את המעקב אחר האירועים של האובייקט והאירועים שצוינו. לדוגמה, הקוד הבא מפסיק את כל מעקב האירועים באובייקט החלון:

unmonitorEvents(window);

אפשר גם להפסיק באופן סלקטיבי את המעקב אחרי אירועים ספציפיים באובייקט. לדוגמה, הקוד הבא מתחיל לעקוב אחרי כל אירועי העכבר ברכיב שנבחר כרגע, ואז מפסיק לעקוב אחרי אירועי 'mousemove' (אולי כדי לצמצם את הרעש בפלט המסוף):

monitorEvents($0, "mouse");
unmonitorEvents($0, "mousemove");

values(object)

הפונקציה values(object) מחזירה מערך שמכיל את הערכים של כל המאפיינים ששייכים לאובייקט שצוין.

let player = {
    "name": "Parzival",
    "number": 1,
    "state": "ready",
    "easterEggs": 3
};

values(player);

התוצאה של values(player).