הפניית API של Console Utilities

Sofia Emelianova
Sofia Emelianova

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

מנסה למצוא את console.log(), console.error() ואת שאר הפונקציות של console.*? צפייה חומר עזר בנושא API של המסוף.

$_

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

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

$_ הוא הביטוי האחרון שנבדק.

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

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

0 ש"ח עד 16 ש"ח

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

בדוגמה הבאה, נבחר רכיב img בחלונית Elements. בחלונית ההזזה של המסוף, הפונקציה $0 נבדקה ומציגה את אותו רכיב:

דוגמה של $0.

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

דוגמה של $1.

$(selector [, startNode])

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

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

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

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

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

דוגמה של $(&#39;imgsrc&#39;).

הפונקציה הזו תומכת גם בפרמטר שני, 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=&lt;img&gt; רכיבים שמופיעים במסמך הנוכחי אחרי הצומת שנבחר:

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

דוגמה לשימוש ב-$() כדי לבחור את כל התמונות שמופיעות אחרי הרכיב Select 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)

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

debug(getData);

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

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

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

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 או חלונית הפרופילים עבור אובייקטי ערימה של JavaScript.

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

inspect(document.body);

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

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

getEventListeners(object)

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

getEventListeners(document);

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

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

מאזינים מרובים.

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

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

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

מפתחות(אובייקט)

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

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

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

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

דוגמה ל-methods() ו-value() .

Monitoring(function)

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

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

דוגמה ל-method Monitoring.

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

monitorEvents(object [, events])

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

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

monitorEvents(window, "resize");

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

ההגדרה הבאה מגדירה מערך שעוקב גם אחרי 'שינוי גודל' ו"גלילה" אירועים באובייקט החלון:

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

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

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

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

monitorEvents($0, "key");

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

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

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

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

profile() מתחיל סשן פרופיילינג של המעבד (CPU) ב-JavaScript עם שם אופציונלי. profileEnd() מסיים את הפרופיל ומציג את התוצאות בקטע ביצועים > טראק ראשי.

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

profile("Profile 1")

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

profileEnd("Profile 1")

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

פרופיל 1 במסלול הראשי של Performance (ביצועים).

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

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

queryObjects(Constructor)

קוראים לפונקציה queryObjects(Constructor) מהמסוף כדי להחזיר מערך של אובייקטים שנוצרו. באמצעות ה-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(פונקציה)

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

unmonitor(getData);

unmonitorEvents(object [, events])

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

unmonitorEvents(window);

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

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

ערכים(אובייקט)

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

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

values(player);

תוצאה של ערכים(נגן).