Online JavaScript Runner

Write, run, and debug JavaScript or Node.js online in a full-featured browser IDE. Work with multiple files and packages, save your workspace, and collaborate in real time.

🚀 339,661 การดำเนินการทั้งหมด (665 ในเดือนนี้)
ผลลัพธ์

ฝึก JavaScript ด้วยโจทย์เขียนโค้ด

แก้โจทย์จริงใน editor นี้: รันทดสอบตัวอย่าง ส่งคำตอบ และรับรีวิวโค้ดจาก AI

โจทย์ JavaScript ทั้งหมด
ง่าย

Distance Between Points

Compute the straight-line distance between two points.

คุณจะได้เรียนรู้ ทฤษฎีบทพีทาโกรัสรากที่สอง
BeginnerFunctionsLearning-pathmath
ง่าย

Days in a Month

Return how many days a month has, including leap years.

คุณจะได้เรียนรู้ กฎของปฏิทินฟังก์ชันช่วย
BeginnerConditionsFunctionsLearning-path
ง่าย

Average of Three

Average three whole numbers.

คุณจะได้เรียนรู้ เลขคณิตการหาร
BeginnerLearning-pathVariables
ง่าย

ผลคูณจุดของเวกเตอร์สองตัว

คูณเวกเตอร์สองตัวทีละสมาชิกแล้วรวมผลลัพธ์ ซึ่งเป็นการคำนวณหลักของทุกนิวรอน

คุณจะได้เรียนรู้ เวกเตอร์ผลคูณจุด
โครงข่ายประสาทเทียมaiการเรียนรู้ของเครื่อง
ง่าย

Largest of Three

Pick the largest of three numbers without a built-in max.

คุณจะได้เรียนรู้ การเปรียบเทียบรวมเงื่อนไข
BeginnerConditionsLearning-path
ง่าย

ตรวจสอบจำนวนเฉพาะ

ตัดสินว่าตัวเลขเป็นจำนวนเฉพาะหรือไม่

คุณจะได้เรียนรู้ การหารลงตัวปรับลูปให้เร็วขึ้น
BeginnerLoopsNumbersStudent-beginner
ง่าย

สามเหลี่ยมตัวเลข

สร้างสามเหลี่ยมที่มีตัวเลขเพิ่มขึ้นในแต่ละแถว

คุณจะได้เรียนรู้ แถวที่ยาวขึ้นตัวนับข้ามแถว
BeginnerLearning-pathNested-loopsPatterns
ง่าย

ตัวเลขอาร์มสตรอง

ตรวจสอบว่าตัวเลขเท่ากับผลรวมของแต่ละหลักยกกำลังจำนวนหลักหรือไม่

คุณจะได้เรียนรู้ แยกหลักตัวเลขเลขยกกำลัง
BeginnerNumbersStudent-beginner
ง่าย

Row Sums

Add up every row of a grid.

คุณจะได้เรียนรู้ ลิสต์ 2 มิติลูปซ้อน
BeginnerGridsLearning-path
ง่าย

Min and Max Together

Find the smallest and largest value in one pass.

คุณจะได้เรียนรู้ ไล่รอบเดียวคืนหลายค่า
ArraysBeginnerFunctionsLearning-path
ง่าย

นับคู่ที่มีผลรวมเท่ากับค่าที่กำหนด

นับจำนวนคู่ของตำแหน่งที่ค่ารวมกันได้เท่ากับเป้าหมายที่กำหนด

คุณจะได้เรียนรู้ คู่ดัชนีหลีกเลี่ยงการนับซ้ำ
ArraysBeginnerLearning-pathNested-loops
ง่าย

Hollow Square

Draw the outline of a square with * characters.

คุณจะได้เรียนรู้ ตรวจขอบสร้างสตริง
BeginnerLearning-pathNested-loopsPatterns

⚡ เกี่ยวกับตัวรันโค้ด JavaScript (Node.js) ออนไลน์นี้

ตัวรันโค้ด JavaScript ของ CodeUtility ให้คุณเขียนและรันโค้ด JavaScript สมัยใหม่ได้ตรงบนเบราว์เซอร์ - ทันทีโดยไม่ต้องตั้งค่าใดๆ ใช้สภาพแวดล้อม Node.js จริงในการรันโค้ดของคุณอย่างปลอดภัยในคอนเทนเนอร์แบบ sandbox รองรับเวอร์ชัน 16, 18 และ 20.

เครื่องมือนี้เหมาะสำหรับทดสอบสคริปต์ Node.js, สำรวจไวยากรณ์ ES6+, หรือเรียนรู้แนวคิดพื้นฐานของการเขียนโปรแกรม JavaScript เช่น ลูป, ฟังก์ชัน, อาเรย์, พรอมิส และพฤติกรรมของ async/await

คุณยังสามารถใช้เพื่อตรวจสอบอัลกอริทึม ดีบักสคริปต์เล็กๆ หรือทดลองตรรกะรันไทม์ได้โดยไม่ต้องติดตั้ง Node ในเครื่อง เหมาะสำหรับผู้เรียน นักพัฒนาแบ็กเอนด์ หรือใครก็ตามที่ต้องการวิธีรันโค้ด JavaScript แบบรวดเร็วบนเบราว์เซอร์

มากกว่าเครื่องมือรันโค้ด

ใช้ตัวแก้ไขหลายไฟล์ เทอร์มินัลประมวลผลแบบแยกส่วน ไลบรารีเฉพาะรันไทม์ พื้นที่ทำงานถาวร การแชร์ และการทำงานร่วมกันแบบเรียลไทม์ได้จากตัวประมวลผลเดียวกัน

วิธีใช้ตัวประมวลผลนี้

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

  1. เลือกเวอร์ชันแล้วแก้ไขไฟล์ปัจจุบัน หรือเปิดไฟล์อื่นในพื้นที่ทำงาน
  2. เรียกใช้โค้ด ป้อนข้อมูลในเทอร์มินัลเมื่อระบบร้องขอ และตรวจสอบประวัติการเรียกใช้ที่บันทึกไว้
  3. ใช้ไลบรารี เครื่องมือพื้นที่ทำงาน การแชร์ และแชท เมื่องานของคุณต้องใช้โค้ดมากกว่าหนึ่งส่วน

💡 คู่มือพื้นฐาน Node.js สำหรับมือใหม่

1. การประกาศตัวแปรและค่าคงที่

ใช้ let หรือ const สำหรับตัวแปรที่มีขอบเขตเป็นบล็อก โดย const ใช้สำหรับค่าคงที่

let x = 10;
const PI = 3.14;
let name = "Alice";
let isActive = true;

2. เงื่อนไข (if / switch)

ใช้ if, else if, else หรือ switch สำหรับควบคุมการไหลของโปรแกรม

let x = 2;
if (x === 1) {
  console.log("หนึ่ง");
} else if (x === 2) {
  console.log("สอง");
} else {
  console.log("อื่น");
}

switch (x) {
  case 1:
    console.log("หนึ่ง");
    break;
  case 2:
    console.log("สอง");
    break;
  default:
    console.log("อื่น");
}

3. ลูป

ใช้ for, while และ forEach สำหรับวนซ้ำข้อมูล

for (let i = 0; i < 3; i++) {
  console.log(i);
}

let n = 3;
while (n > 0) {
  console.log(n);
  n--;
}

4. อาเรย์

ใช้อาเรย์เพื่อเก็บรายการค่าที่มีลำดับ เข้าถึงด้วยดัชนี

let fruits = ["apple", "banana", "cherry"];
console.log(fruits[0]);
console.log(fruits.length);

5. การจัดการอาเรย์

ใช้เมธอดอย่าง push, pop, slice และ reverse

fruits.push("kiwi");
fruits.pop();
console.log(fruits.slice(0, 2));
console.log(fruits.reverse());

let squares = [1, 2, 3, 4, 5].map(x => x * x);
console.log(squares);

6. อินพุต/เอาต์พุตคอนโซล

ใช้ console.log สำหรับเอาต์พุต และโมดูล readline สำหรับอินพุต

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question("คุณชื่ออะไร? ", name => {
  console.log(`สวัสดี, ${name}`);
  rl.close();
});

7. ฟังก์ชัน

ฟังก์ชันสามารถประกาศหรือเขียนเป็น expression ก็ได้ ใน JavaScript สมัยใหม่มักใช้ฟังก์ชันแบบลูกศร (arrow function)

function greet(name) {
  return `สวัสดี, ${name}`;
}

const add = (a, b) => a + b;

console.log(greet("Alice"));
console.log(add(2, 3));

8. อ็อบเจ็กต์ (แมป)

อ็อบเจ็กต์เก็บคู่คีย์-ค่า คล้ายพจนานุกรมหรือแมป

let person = { name: "Bob", age: 25 };
console.log(person.name);
console.log(person["age"]);

// Map ของ ES6
const map = new Map();
map.set("a", 1);
console.log(map.get("a"));

9. การจัดการข้อยกเว้น

ใช้ try, catch และ finally เพื่อจัดการข้อผิดพลาดอย่างปลอดภัย

try {
  throw new Error("มีบางอย่างผิดพลาด");
} catch (e) {
  console.log(e.message);
} finally {
  console.log("เคลียร์งานหากจำเป็น");
}

10. การทำงานกับไฟล์ (File I/O)

ใช้โมดูล fs ของ Node.js เพื่ออ่านและเขียนไฟล์

const fs = require("fs");

fs.writeFileSync("test.txt", "สวัสดี ไฟล์");
const data = fs.readFileSync("test.txt", "utf8");
console.log(data);

11. การจัดการสตริง

ใช้เมธอดอย่าง trim(), toUpperCase(), replace() และ split()

let text = "  Hello World  ";
console.log(text.trim());
console.log(text.toUpperCase());
console.log(text.replace("Hello", "Hi"));
console.log(text.split(" "));

12. คลาสและอ็อบเจ็กต์

ES6+ รองรับ OOP ด้วยไวยากรณ์ class

class Person {
  constructor(name) {
    this.name = name;
  }
  greet() {
    return `สวัสดี ฉันชื่อ ${this.name}`;
  }
}

const p = new Person("Alice");
console.log(p.greet());

13. การอ้างอิง

อ็อบเจ็กต์และอาเรย์ใน JavaScript ถูกส่งผ่านโดยการอ้างอิง

function update(arr) {
  arr.push("เปลี่ยนแล้ว");
}

let data = ["ดั้งเดิม"];
update(data);
console.log(data);  // ["ดั้งเดิม", "เปลี่ยนแล้ว"]