ข้ามไปยังเนื้อหา
ToolMug

ใช้ ↑ ↓ เพื่อเลื่อน, Enter เพื่อเปิด, Esc เพื่อปิด

รัน JavaScript ออนไลน์

วางหรือเขียน JavaScript แล้วคลิก รัน เพื่อดูเอาต์พุตจาก console.log, warn และ error ใช้ทดลองโค้ดสั้น ๆ ฝึกอัลกอริทึม หรือแก้ปัญหาตรรกะบางส่วนได้ รองรับ top-level await และโค้ดทำงานใน worker แยก จึงไม่ทำให้หน้าเว็บค้างแม้เกิดลูปไม่สิ้นสุด

ทำงานในเบราว์เซอร์ของคุณ ข้อมูลที่คุณป้อนจะไม่ถูกอัปโหลด

Ctrl+Enter / ⌘+Enter

คอนโซล

เอาต์พุตจาก console.log จะแสดงที่นี่

รันใน worker แยก ไม่มี DOM (document, window) แต่ใช้ fetch, timers, JSON, Intl และ built-in อื่น ๆ ได้

วิธีใช้งาน

  1. เขียนโค้ดทางซ้าย หรือแก้ไขตัวอย่าง
  2. คลิก รัน หรือกด Ctrl+Enter (⌘+Enter บน Mac) เอาต์พุตคอนโซลจะแสดงทางขวา
  3. หากโค้ดทำงานนานเกินไป ให้คลิก หยุด หรือตั้งจำกัดเวลาที่มุมขวาล่าง

คำอธิบายตัวเลือก

สภาพแวดล้อม
Web Worker ในเบราว์เซอร์ของคุณ พร้อมไวยากรณ์ JavaScript ล่าสุดที่เบราว์เซอร์รองรับ รวมถึง fetch, setTimeout, Intl และ crypto แต่ไม่มี document หรือ window
คอนโซล
console.log, info, warn, error, debug, table, count และ time/timeEnd พร้อม placeholder %s, %d และ %o ออบเจ็กต์จะแสดงรายละเอียดแบบขยายคล้ายกับใน Node.js
Top-level await
โค้ดทำงานภายในฟังก์ชัน async จึงใช้ await ได้โดยตรง

สิ่งที่ถูกพิมพ์ออกมา

เอาต์พุตแสดงเฉพาะสิ่งที่คุณส่งไปยังคอนโซล ค่าของบรรทัดสุดท้ายไม่แสดงเหมือนในคอนโซลของเบราว์เซอร์ จึงต้องห่อด้วย console.log การพิมพ์เป็นสไตล์ Node.js คืออาร์เรย์และอ็อบเจ็กต์ถูกขยาย สตริงภายในถูกใส่เครื่องหมายคำพูด และตัวแทน %s กับ %d ถูกเติมจากอาร์กิวเมนต์ถัดไป

console.log([1, 2, 3].map((n) => n * n));
console.log('%s is %d years old', 'Ada', 36);
console.log({ name: 'Ada', tags: ['a', 'b'] });
const data = await fetch('https://example.com/').then((r) => r.status);
console.log(data);

สามบรรทัดแรกพิมพ์ [ 1, 4, 9 ], Ada is 36 years old และ { name: "Ada", tags: [ "a", "b" ] } สองบรรทัดสุดท้ายต้องใช้การเชื่อมต่อเครือข่ายและพิมพ์สถานะ HTTP ของคำขอ จำกัดเวลาตั้งได้ที่ 5, 10, 30 หรือ 60 วินาที เมื่อถึงเวลา การรันจะสิ้นสุดและมีข้อความแจ้ง

คำถามที่พบบ่อย

สามารถ import แพ็กเกจ npm ได้หรือไม่

ใช้คำสั่ง import โดยตรงไม่ได้ แต่โหลดแพ็กเกจ ESM แบบไดนามิกได้ด้วย await import('https://esm.sh/package-name') ซึ่งต้องเชื่อมต่อเครือข่าย

ถ้าเขียนลูปไม่สิ้นสุดจะเกิดอะไรขึ้น

คลิก หยุด เพื่อยุติทันที หรือระบบจะหยุดโดยอัตโนมัติเมื่อถึงจำกัดเวลา การรันแต่ละครั้งใช้ worker ใหม่ หน้าเว็บจึงไม่ได้รับผลกระทบ

โค้ดของฉันถูกอัปโหลดหรือไม่

ไม่ โค้ดทำงานเฉพาะในเบราว์เซอร์ของคุณ คำขอเครือข่ายเพียงอย่างเดียวคือคำขอที่โค้ดของคุณเป็นผู้ส่ง

รองรับ TypeScript หรือไม่

ขณะนี้รองรับเฉพาะ JavaScript โปรดลบคำกำกับชนิดข้อมูลของ TypeScript ออกก่อน

ความเป็นส่วนตัว

เครื่องมือนี้ทำงานในเบราว์เซอร์ของคุณทั้งหมด ไฟล์และข้อความของคุณได้รับการประมวลผลบนอุปกรณ์ของคุณ และจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ของเรา

เครื่องมือที่เกี่ยวข้อง