Tbh wygląda to trochę jak próba napisania prostego interpretera do czegoś pythono-podobnego w JSie
Zaczynając od początku
var code = `
a = 5
c = 7
print c
print a
`;
execute(code);
Tworzymy nową zmienną i przypisujemy jej stringa z kodem - potem wykonujemy kod
Myślę że możnaby tu użyć `const` zamiast `var`
Dalej w stricte funkcji `execute`
const variables = {};
Tworzymy nowy pusty obiekt o nazwie `variables`
for (const line of code.split("\n")) {
Rozbijamy to co nam przyszło w argumencie na linie (szukając nowej linii - tzw. "newline escape sequence") i dla każdej linii od góry wykonujemy kod. Tak działają języki interpretowane
if (line.includes(" = ")) {
const [name, value] = line.split(" = ");
variables[name] = value;
}
W if'ie szukamy znaku `=` -> zmiennej
Gdy ją znajdziemy rozbijamy linię na parę nazwa-wartość przy użyciu String.prototype.split
Druga opcja - wyświetlenie stringa
else if (line.startsWith("print ")) {
console.log(variables[line.substr(6)])
}
Szukamy czy linia zaczyna się od `print ` a jeśli tak to wyświetlamy zawartość obiektu `variables` dla klucza pozyskanego z obcięcia pierwszych 6 znaków z stringa (czyli `print `)
Poza tym, substr() ma już status "Deprecated" i lepiej stosować "substring()" albo `slice()`
Ale za bardzo nie rozumiem poszczególnych części tekstu jedyne co tu rozumiem to tylko parę rzeczy które ani trochę mi nie pomagają
Po to istnieje coś takiego jak Google - można wpisać np. for-of js i masz koło 3,770,000,000 wyników omawiających właśnie to