← Back to Articles

Flow Control

Comparing flow control differences between Python and JavaScript

The information comes from the Udemy course "Become an AI Engineer: Python for JavaScript Developers" by Vilva Athiban

Feature JavaScript Python
if / else
const age = 25;
if (age < 18) {
  console.log("minor");
} else if (age < 65) {
  console.log("adult");
} else {
  console.log("senior");
}
age = 25
if age < 18:
    print("minor")
elif age < 65:
    print("adult")
else:
    print("senior")
switch
const status = 200;
switch (status) {
  case 200:
    console.log("OK");
    break;
  default:
    console.log("unknown");
}
match / case
status = 200
match status:
    case 200:
        print("OK")
    case _:  # underscore = default (matches anything)
        print("unknown")
for loop over values
const arr = [10, 20, 30];
for (const value of arr) {
  console.log(value);
}
arr = [10, 20, 30]
for value in arr:
    print(value)
continue / break
for (const value of arr) {
  if (value === 20) continue; // skip 20
  console.log(value);
}
for (const value of arr) {
  if (value === 20) break;    // stop at 20
  console.log(value);
}
Same as js
for value in arr:
    if value == 20:
        continue  # skip 20
    print(value)
for value in arr:
    if value == 20:
        break     # stop at 20
    print(value)
forEach with index (entries)
const fruits = ["a", "b", "c"];
fruits.forEach((value, index) => console.log(index, value));
enumerate -> like forEach with index
fruits = ["a", "b", "c"]
for index, value in enumerate(fruits):
    print(index, value)
map & filter
const numbers = [1, 2, 3, 4, 5];
const squares = numbers.map((n) => n * n);
const evens = numbers.filter((n) => n % 2 === 0);
console.log(squares, evens);
map & filter via list comprehensions (operation goes FIRST)
numbers = [1, 2, 3, 4, 5]
squares = [num * num for num in numbers]  # map
evens = [num for num in numbers if num % 2 == 0] # filter
print(squares, evens)