Trình chạy JavaScript online

Viết, chạy và gỡ lỗi JavaScript hoặc Node.js trực tuyến trong IDE đầy đủ tính năng. Làm việc với nhiều tệp và package, lưu workspace và cộng tác theo thời gian thực.

Thư viện cài đặt sẵn
🚀 339,661 tổng số lượt thực thi (665 trong tháng này)
Nhúng
Kết quả

Luyện JavaScript với thử thách lập trình

Giải các bài tập thực tế ngay trên trình soạn thảo này: chạy kiểm thử mẫu, nộp bài và nhận đánh giá code từ AI.

Tất cả thử thách JavaScript
Dễ

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Bạn sẽ học Số họcGiá trị trả về
BeginnerLearning-pathVariables
Dễ

Distance Between Points

Compute the straight-line distance between two points.

Bạn sẽ học Định lý PythagoreCăn bậc hai
BeginnerFunctionsLearning-pathmath
Dễ

Days in a Month

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

Bạn sẽ học Quy tắc lịchHàm phụ trợ
BeginnerConditionsFunctionsLearning-path
Dễ

Trung Bình Của Ba Số

Tính trung bình cộng của ba số nguyên.

Bạn sẽ học Số họcPhép chia
BeginnerLearning-pathVariables
Dễ

Tích vô hướng của hai vector

Nhân hai vector theo từng phần tử rồi cộng kết quả lại, phép tính cốt lõi của mọi nơ-ron.

Bạn sẽ học VectorTích vô hướng
Mạng nơ-rontrí tuệ nhân tạohọc máy
Dễ

Số Lớn Nhất Trong Ba Số

Chọn số lớn nhất trong ba số mà không dùng hàm max có sẵn.

Bạn sẽ học So sánhKết hợp điều kiện
BeginnerConditionsLearning-path
Dễ

Kiểm Tra Số Nguyên Tố

Xác định xem một số có phải là số nguyên tố hay không.

Bạn sẽ học Tính chia hếtTối ưu vòng lặp
BeginnerLoopsNumbersStudent-beginner
Dễ

Số Armstrong

Kiểm tra một số có bằng tổng các chữ số của nó lũy thừa lên số lượng chữ số hay không.

Bạn sẽ học Tách chữ sốLũy thừa
BeginnerNumbersStudent-beginner
Dễ

Row Sums

Add up every row of a grid.

Bạn sẽ học Danh sách 2 chiềuVòng lặp lồng nhau
BeginnerGridsLearning-path
Dễ

Min and Max Together

Find the smallest and largest value in one pass.

Bạn sẽ học Một lần duyệtTrả về nhiều giá trị
ArraysBeginnerFunctionsLearning-path
Dễ

Count Pairs With a Sum

Count pairs of positions whose values add up to a target.

Bạn sẽ học Cặp chỉ sốTránh đếm trùng
ArraysBeginnerLearning-pathNested-loops
Dễ

Hollow Square

Draw the outline of a square with * characters.

Bạn sẽ học Nhận biết viềnTạo chuỗi
BeginnerLearning-pathNested-loopsPatterns

⚡ Giới thiệu về Trình thực thi JavaScript (Node.js) trực tuyến này

Trình thực thi JavaScript của CodeUtility cho phép bạn viết và chạy mã JavaScript hiện đại ngay trên trình duyệt - tức thì và không cần cấu hình. Công cụ sử dụng môi trường Node.js thực để chạy mã của bạn an toàn trong container sandbox, hỗ trợ các phiên bản 16, 18 và 20.

Công cụ này rất phù hợp để kiểm thử các đoạn mã Node.js, khám phá cú pháp ES6+, hoặc học các khái niệm lập trình JavaScript cốt lõi như vòng lặp, hàm, mảng, promise và hành vi async/await.

Bạn cũng có thể dùng nó để kiểm chứng thuật toán, gỡ lỗi các tập lệnh nhỏ, hoặc thử nghiệm logic runtime mà không cần cài Node cục bộ. Rất lý tưởng cho người học, lập trình viên backend, hoặc bất kỳ ai cần cách chạy JavaScript nhanh gọn ngay trên trình duyệt.

Không chỉ là công cụ chạy mã

Sử dụng trình soạn thảo nhiều tệp, terminal thực thi biệt lập, thư viện riêng theo môi trường chạy, không gian làm việc lâu dài, tính năng chia sẻ và cộng tác theo thời gian thực ngay trong cùng một trình thực thi.

Cách sử dụng trình thực thi này?

Chọn môi trường chạy, mở hoặc tạo tệp, viết mã rồi nhấn Chạy. Kết quả xuất hiện trong terminal; người dùng đã đăng nhập có thể lưu tệp trong không gian làm việc, cài thư viện và cộng tác qua liên kết chia sẻ.

  1. Chọn phiên bản rồi chỉnh sửa tệp hiện tại hoặc mở một tệp khác trong không gian làm việc.
  2. Chạy mã, nhập dữ liệu trong terminal khi được yêu cầu và xem lại lịch sử chạy đã lưu.
  3. Sử dụng thư viện, công cụ không gian làm việc, chia sẻ và trò chuyện khi tác vụ cần nhiều hơn một đoạn mã.

💡 Hướng dẫn cơ bản Node.js cho người mới bắt đầu

1. Khai báo biến và hằng số

Dùng let hoặc const cho biến có phạm vi khối. const dùng cho hằng số.

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

2. Cấu trúc điều kiện (if / switch)

Dùng if, else if, else hoặc switch để điều khiển luồng.

let x = 2;
if (x === 1) {
  console.log("Một");
} else if (x === 2) {
  console.log("Hai");
} else {
  console.log("Khác");
}

switch (x) {
  case 1:
    console.log("Một");
    break;
  case 2:
    console.log("Hai");
    break;
  default:
    console.log("Khác");
}

3. Vòng lặp

Dùng for, while và forEach để lặp qua dữ liệu.

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

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

4. Mảng

Dùng mảng để lưu danh sách giá trị có thứ tự. Truy cập bằng chỉ số.

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

5. Thao tác mảng

Dùng các phương thức như push, pop, slice và 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. Nhập/Xuất console

Dùng console.log để xuất và mô-đun readline để nhập.

const readline = require('readline');

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

rl.question("Tên bạn là gì? ", name => {
  console.log(`Xin chào, ${name}`);
  rl.close();
});

7. Hàm

Hàm có thể được khai báo hoặc viết dưới dạng biểu thức. Hàm mũi tên thường được dùng trong JavaScript hiện đại.

function greet(name) {
  return `Xin chào, ${name}`;
}

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

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

8. Đối tượng (Map)

Đối tượng lưu cặp khóa-giá trị. Chúng tương tự như dictionary hoặc map.

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

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

9. Xử lý ngoại lệ

Dùng try, catch và finally để xử lý lỗi an toàn.

try {
  throw new Error("Đã có sự cố xảy ra");
} catch (e) {
  console.log(e.message);
} finally {
  console.log("Dọn dẹp nếu cần");
}

10. I/O tệp

Dùng mô-đun fs của Node.js để đọc và ghi tệp.

const fs = require("fs");

fs.writeFileSync("test.txt", "Hello File");
const data = fs.readFileSync("test.txt", "utf8");
console.log(data);

11. Xử lý chuỗi

Dùng các phương thức như trim(), toUpperCase(), replace() và split().

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

12. Lớp & Đối tượng

ES6+ hỗ trợ OOP với cú pháp class.

class Person {
  constructor(name) {
    this.name = name;
  }
  greet() {
    return `Xin chào, tôi là ${this.name}`;
  }
}

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

13. Tham chiếu

Đối tượng và mảng trong JavaScript được truyền theo tham chiếu.

function update(arr) {
  arr.push("changed");
}

let data = ["original"];
update(data);
console.log(data);  // ["original", "changed"]