Przejdź do głównej zawartości

Bug #031

🪲 Znajdź buga

console.log(1000000)
console.log(1_000_000)

console.log(1000 + 100 + 10 + 1)
console.log(1_000 + 100 + 10 + 1)

console.log(1e3 + 1e2 + 1e1 + 1)
console.log(1_e_3 + 1e_2 + 1_e1 + 1)

console.log(10 + 1)
console.log(1_0 + 0_1)

console.log(0b00001000 + 0b0010)
console.log(0b0000_1000 + 0b0_0_1_0)

console.log(0b10 + 0b01)
console.log(0b_1_0 + 0b_0_1)

Który z powyższych zapisów liczbowych będzie niedozwolony?

🧪 Rozwiązanie

console.log(1000000)
console.log(1_000_000)

console.log(1000 + 100 + 10 + 1)
console.log(1_000 + 100 + 10 + 1)

console.log(1e3 + 1e2 + 1e1 + 1)
// console.log(1_e_3 + 1e_2 + 1_e1 + 1)

console.log(10 + 1)
// console.log(1_0 + 0_1)

console.log(0b00001000 + 0b0010)
console.log(0b0000_1000 + 0b0_0_1_0)

console.log(0b10 + 0b01)
// console.log(0b_1_0 + 0b_0_1)

Błędy zostaną wyrzucone w trzech liniach:

8: Numeric separators are not allowed here.

11: Numeric separator can not be used after leading 0.

17: Numeric separators are not allowed here.

Pozostałe zapisy liczb i działań są poprawne.

Pomiędzy cyframi w liczbach dziesiętnych można umieszczać wizualny separator _.

Przydaje się to przy trzycyfrowych grupach, czyli liczebnikach potęgi tysiąca (tysiąc, milion, miliard, itd.).

W niektórych sytuacjach, nie możemy jednak zastosować podkreślenia w zapisach liczbowych.

Podkreślenie nie może pojawić się jako pierwszy znak, bo taki zapis odnosiłby się do definiowania nazwy np. zmiennej (_myVar, _123).

Podkreślenie nie może pojawić się na końcu liczby (np. 100_).

Podkreślenie nie może wystąpić po początkowym zerze (np. 0_1).

Podkreślenia nie można użyć w zapisach wykładniczych (np. 1_e2).

Podkreślenia nie można też użyć po początkowej definicji zapisów liczb w postaci binarnej, ósemkowej, czy szesnastkowej (np. 0b_001).

Przy użyciu _ możemy więc wizualnie separować liczby dziesiętne jak np. 125_4912_6824, jak również zapisy liczby w innych systemach liczbowych np. separując co 4 bity liczb binarnych np. 0b1010_1101.

🎢 Plac zabaw

Otwórz edytor w nowym oknie

📑 Linki

❤️ Podobają Ci się bugi JS?

Podziel się linkiem ze znajomymi:
https://codisity.pl/100-bugow-js