Console Utilities API มีชุดฟังก์ชันอำนวยความสะดวกสำหรับการทำงานทั่วไป ได้แก่ การเลือกและตรวจสอบองค์ประกอบ DOM, การค้นหาออบเจ็กต์, การแสดงข้อมูลในรูปแบบที่อ่านง่าย, การหยุดและเริ่มโปรไฟล์เลอร์, การตรวจสอบเหตุการณ์ DOM และการเรียกใช้ฟังก์ชัน และอื่นๆ
กำลังมองหาฟังก์ชัน console.log(), console.error() และฟังก์ชันอื่นๆ ใน console.* ใช่ไหม ดู
เอกสารอ้างอิง Console API
$_
$_ จะแสดงผลค่าของนิพจน์ที่ประเมินล่าสุด
ในตัวอย่างต่อไปนี้ ระบบจะประเมินนิพจน์อย่างง่าย (2 + 2) จากนั้นระบบจะประเมินพร็อพเพอร์ตี้ $_ ซึ่งมีค่าเดียวกัน ดังนี้

ในตัวอย่างถัดไป นิพจน์ที่ประเมินจะมีอาร์เรย์ของชื่อในตอนแรก เมื่อประเมิน
$_.length เพื่อหาความยาวของอาร์เรย์ ค่าที่เก็บไว้ใน $_ จะเปลี่ยนเป็นนิพจน์ที่ประเมินล่าสุด
ซึ่งก็คือ 4 ดังนี้

$0 - $4
คำสั่ง $0, $1, $2, $3 และ $4 ทำงานเป็นการอ้างอิงย้อนหลังถึงองค์ประกอบ DOM 5 รายการล่าสุด (รวมถึงองค์ประกอบเสมือน เช่น ::before หรือ ::after) ที่ตรวจสอบภายในแผงองค์ประกอบ หรือออบเจ็กต์ฮีป JavaScript 5 รายการล่าสุดที่เลือกในแผงโปรไฟล์ $0 จะแสดงผลองค์ประกอบหรือออบเจ็กต์ JavaScript ที่เลือกล่าสุด ส่วน $1 จะแสดงผลองค์ประกอบหรือออบเจ็กต์ที่เลือกเป็นอันดับ 2 และอื่นๆ
ในตัวอย่างต่อไปนี้ ระบบจะเลือกองค์ประกอบ img ในแผงองค์ประกอบ ในลิ้นชักคอนโซล ระบบได้ประเมิน $0 แล้วและแสดงองค์ประกอบเดียวกัน ดังนี้

รูปภาพด้านล่างแสดงองค์ประกอบอื่นที่เลือกในหน้าเดียวกัน ตอนนี้ $0 อ้างอิงถึงองค์ประกอบที่เลือกใหม่ ส่วน $1 จะแสดงผลองค์ประกอบที่เลือกก่อนหน้านี้ ดังนี้

$(selector [, startNode])
$(selector) จะแสดงผลการอ้างอิงถึงองค์ประกอบ DOM แรกที่มีตัวเลือก CSS ที่ระบุ เมื่อ
เรียกใช้ด้วยอาร์กิวเมนต์เดียว ฟังก์ชันนี้จะเป็นทางลัดสำหรับฟังก์ชัน document.querySelector()
ตัวอย่างต่อไปนี้จะแสดงผลการอ้างอิงถึงองค์ประกอบ <img> แรกในเอกสาร

คลิกขวาที่ผลลัพธ์ที่แสดง แล้วเลือกแสดงในแผงองค์ประกอบ เพื่อค้นหาใน DOM หรือเลื่อนเพื่อดู เพื่อแสดงในหน้า
ตัวอย่างต่อไปนี้จะแสดงผลการอ้างอิงถึงองค์ประกอบที่เลือกอยู่ในปัจจุบันและแสดงพร็อพเพอร์ตี้ src ขององค์ประกอบดังกล่าว

ฟังก์ชันนี้ยังรองรับพารามิเตอร์ที่ 2 ซึ่งก็คือ startNode ที่ระบุ "องค์ประกอบ" หรือโหนดที่จะใช้ค้นหาองค์ประกอบ ค่าเริ่มต้นของพารามิเตอร์นี้คือ document
ตัวอย่างต่อไปนี้จะแสดงผลการอ้างอิงถึงองค์ประกอบ img แรกที่เป็นองค์ประกอบย่อยของ devsite-header-background และแสดงพร็อพเพอร์ตี้ 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);
}
องค์ประกอบ<img>
ที่ปรากฏในเอกสารปัจจุบันหลังจากโหนดที่เลือก
let images = $$('img', document.querySelector('.devsite-header-background'));
for (let each of images) {
console.log(each.src);
}

$x(path [, startNode])
$x(path) จะแสดงผลอาร์เรย์ขององค์ประกอบ DOM ที่ตรงกับนิพจน์ XPath ที่ระบุ
ตัวอย่างเช่น คำสั่งต่อไปนี้จะแสดงผลองค์ประกอบ <p> ทั้งหมดในหน้า
$x("//p")

ตัวอย่างต่อไปนี้จะแสดงผลองค์ประกอบ <p> ทั้งหมดที่มีองค์ประกอบ <a>
$x("//p[a]")

เช่นเดียวกับฟังก์ชันตัวเลือกอื่นๆ $x(path) มีพารามิเตอร์ที่ 2 ที่ไม่บังคับ ซึ่งก็คือ startNode ที่ระบุองค์ประกอบหรือโหนดที่จะใช้ค้นหาองค์ประกอบ

clear()
clear() จะล้างประวัติของคอนโซล
clear();
copy(object)
copy(object) จะคัดลอกการแสดงสตริงของออบเจ็กต์ที่ระบุไปยังคลิปบอร์ด
copy($0);
debug(function)
เมื่อมีการเรียกใช้ฟังก์ชันที่ระบุ ระบบจะเรียกใช้ดีบักเกอร์และหยุดชั่วคราวภายในฟังก์ชันในแผงแหล่งที่มา ซึ่งช่วยให้คุณสามารถดำเนินการทีละขั้นตอนผ่านโค้ดและดีบักโค้ดได้
debug(getData);

ใช้ undebug(fn) เพื่อหยุดการหยุดชั่วคราวในฟังก์ชัน หรือใช้ UI เพื่อปิดใช้งานเบรกพอยต์ทั้งหมด
ดูข้อมูลเพิ่มเติมเกี่ยวกับเบรกพอยต์ได้ที่ หยุดโค้ดชั่วคราวด้วยเบรกพอยต์
dir(object)
dir(object) จะแสดงรายการพร็อพเพอร์ตี้ทั้งหมดของออบเจ็กต์ที่ระบุในรูปแบบออบเจ็กต์ เมธอดนี้เป็นทางลัดสำหรับเมธอด console.dir() ของ Console API
ตัวอย่างต่อไปนี้แสดงความแตกต่างระหว่างการประเมิน document.body โดยตรงในบรรทัดคำสั่งกับการใช้ dir() เพื่อแสดงองค์ประกอบเดียวกัน
document.body;
dir(document.body);

ดูข้อมูลเพิ่มเติมได้ที่รายการ console.dir() ใน Console API
dirxml(object)
dirxml(object) จะพิมพ์การแสดง XML ของออบเจ็กต์ที่ระบุ ดังที่เห็นในแผงองค์ประกอบ
เมธอดนี้เทียบเท่ากับเมธอด console.dirxml()
inspect(object/function)
inspect(object/function) จะเปิดและเลือกองค์ประกอบหรือออบเจ็กต์ที่ระบุในแผงที่เหมาะสม ได้แก่ แผงองค์ประกอบ สำหรับองค์ประกอบ DOM หรือแผงโปรไฟล์สำหรับออบเจ็กต์ฮีป JavaScript
ตัวอย่างต่อไปนี้จะเปิด document.body ในแผงองค์ประกอบ
inspect(document.body);

เมื่อส่งฟังก์ชันเพื่อตรวจสอบ ฟังก์ชันจะเปิดเอกสารในแผงแหล่งที่มา ให้คุณตรวจสอบ
getEventListeners(object)
getEventListeners(object) จะแสดงผล Listener เหตุการณ์ที่ลงทะเบียนไว้ในออบเจ็กต์ที่ระบุ ค่าที่แสดงผลจะเป็นออบเจ็กต์ที่มีอาร์เรย์สำหรับเหตุการณ์ที่ลงทะเบียนแต่ละประเภท (เช่น click หรือ keydown) สมาชิกของอาร์เรย์แต่ละรายการจะเป็นออบเจ็กต์ที่อธิบาย Listener ที่ลงทะเบียนไว้สำหรับแต่ละประเภท ตัวอย่างเช่น คำสั่งต่อไปนี้จะแสดงรายการ Listener เหตุการณ์ทั้งหมดที่ลงทะเบียนไว้ในออบเจ็กต์เอกสาร
getEventListeners(document);

หากมีการลงทะเบียน Listener มากกว่า 1 รายการในออบเจ็กต์ที่ระบุ อาร์เรย์จะมีสมาชิกสำหรับ Listener แต่ละรายการ ในตัวอย่างต่อไปนี้ มี Listener เหตุการณ์ 2 รายการที่ลงทะเบียนไว้ในองค์ประกอบเอกสารสำหรับเหตุการณ์ click

คุณสามารถขยายออบเจ็กต์แต่ละรายการเหล่านี้เพิ่มเติมเพื่อสำรวจพร็อพเพอร์ตี้ของออบเจ็กต์

ดูข้อมูลเพิ่มเติมได้ที่ ตรวจสอบพร็อพเพอร์ตี้ของออบเจ็กต์
keys(object)
keys(object) จะแสดงผลอาร์เรย์ที่มีชื่อของพร็อพเพอร์ตี้ที่เป็นของออบเจ็กต์ที่ระบุ หากต้องการรับค่าที่เชื่อมโยงของพร็อพเพอร์ตี้เดียวกัน ให้ใช้ values()
ตัวอย่างเช่น สมมติว่าแอปพลิเคชันของคุณกำหนดออบเจ็กต์ต่อไปนี้
let player = {
"name": "Parzival",
"number": 1,
"state": "ready",
"easterEggs": 3
};
สมมติว่ามีการกำหนด player ในเนมสเปซส่วนกลาง (เพื่อให้ง่ายต่อการทำความเข้าใจ) การพิมพ์ keys(player) และ
values(player) ในคอนโซล จะแสดงผลดังนี้

monitor(function)
เมื่อมีการเรียกใช้ฟังก์ชันที่ระบุ ระบบจะบันทึกข้อความลงในคอนโซลซึ่งระบุชื่อฟังก์ชันพร้อมกับอาร์กิวเมนต์ที่ส่งไปยังฟังก์ชันเมื่อมีการเรียกใช้
function sum(x, y) {
return x + y;
}
monitor(sum);

ใช้ 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" กับเหตุการณ์แป้นทั้งหมดที่เกี่ยวข้องในช่องข้อความอินพุตที่เลือกอยู่ในแผงองค์ประกอบ
monitorEvents($0, "key");
ด้านล่างนี้คือตัวอย่างเอาต์พุตหลังจากพิมพ์อักขระในช่องข้อความ

ใช้ unmonitorEvents(object[, events]) เพื่อหยุดการตรวจสอบ
profile([name]) และ profileEnd([name])
profile() จะเริ่มเซสชันการสร้างโปรไฟล์ CPU ของ JavaScript โดยมีชื่อที่ไม่บังคับ profileEnd() จะสร้างโปรไฟล์ให้เสร็จสมบูรณ์ เปิดแผงประสิทธิภาพ โดยอัตโนมัติ และแสดงผลลัพธ์ในแท็บหลัก
วิธีเริ่มการสร้างโปรไฟล์
profile("Profile 1")
วิธีหยุดการสร้างโปรไฟล์และดูผลลัพธ์ในแท็บประสิทธิภาพ > หลัก
profileEnd("Profile 1")
ผลลัพธ์ในแท็บประสิทธิภาพ > หลัก

นอกจากนี้ยังซ้อนโปรไฟล์ได้ด้วย ตัวอย่างเช่น คำสั่งต่อไปนี้จะทำงานตามลำดับใดก็ได้
profile('A');
profile('B');
profileEnd('A');
profileEnd('B');
queryObjects(Constructor)
เรียกใช้ queryObjects(Constructor) จากคอนโซลเพื่อแสดงผลอาร์เรย์ของออบเจ็กต์ที่สร้างขึ้นด้วย Constructor ที่ระบุ ตัวอย่างเช่น
queryObjects(Promise)จะแสดงผลอินสแตนซ์ทั้งหมดของPromisequeryObjects(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);

หากต้องการคัดลอกตารางที่บันทึกลงในคลิปบอร์ดเป็นตารางมาร์กดาวน์ที่จัดรูปแบบหรือข้อมูล CSV ให้คลิกขวาที่ตารางในคอนโซล แล้วเลือกตัวเลือกการคัดลอกที่เกี่ยวข้องจากเมนูตามบริบท
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);
