הפניית 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 מחזיר את הרכיב השני שנבחר וכן הלאה.

בדוגמה הבאה, רכיב 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])

$$(הבורר) מחזיר מערך של רכיבים שתואמים לסלקטור הנתון ב-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) מציג רשימה בסגנון אובייקט של כל המאפיינים של האובייקט שצוין. השיטה הזו היא קיצור דרך ל-method‏ 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, לדוגמה). החברים בכל מערך הם אובייקטים שמתארים את ה-listener שרשום לכל סוג. לדוגמה, בקוד הבא מפורטים כל בוררי האירועים הרשומים באובייקט המסמך:

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 Monitoring.

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

monitorEvents(object [, events])

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

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

monitorEvents(window, "resize");

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

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

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).