jsrosetta

Luồng điều khiển

Vòng lặp For

Vòng lặp for kiểu C của JavaScript so với Go (for kiểu C + range-over-int từ 1.22), Java (giữ for kiểu C) và Rust/Swift (không có for kiểu C, chỉ có range).

Phiên bản tối thiểu
Node.js ≥ 12.20Go ≥ 1.22Rust ≥ 1.58Swift ≥ 2.0Java ≥ 25
Đã chạy thử trên
Node.js 24.12.0Go 1.27.1Rust 1.98.1Swift 6.2.4Java 25.0.4.1

Code Node.js là ES module: lưu file .mjs hoặc đặt "type": "module" trong package.json.

Go giữ nguyên vòng for kiểu C ba phần (init; condition; post) giống JavaScript. Go không có while hay do-while riêng — for là từ khoá lặp duy nhất, và từ Go 1.22 nó còn có thêm cách viết range để lặp một số lần cố định. Rust chưa từng có for kiểu C — range (0..6) là cách duy nhất từ Rust 1.0. Swift từng có for kiểu C nhưng đã bỏ hẳn từ Swift 3.0 (SE-0007), cũng chuyển sang dùng range. Java thì vẫn giữ for kiểu C y hệt JavaScript.

Vòng lặp kiểu C và range-over-int

for (let i = 0; i <= 5; i++) {
  console.log(i)
}
# Node.js
0
1
2
3
4
5
 
# Go / Rust / Swift / Java
0
1
2
3
4
5
0
1
2
3
4
5

Tham khảo: github.com/miguelmota/golang-for-nodejs-developers#for