π€ μ€λμ μλ¬
0μΌλ‘ μμνλ μ«μκ° ν¬ν¨λμμ λμ μμΈ μ²λ¦¬λ₯Ό ν΄μΌνλλ°, μ΄λ₯Ό ν μ€νΈνλ μ½λλ₯Ό μμ±νλ€ μλμ κ°μ μλ¬λ₯Ό λ§λ¬λ€.
Octal literals..? μ²μ 보λ μλ¬μ μ²μ λ€μ΄λ³΄λ λ¨μ΄μλ€. μΌλ¨ μ¬μ μ μ°Ύμ보λ octalμ 8μ§λ²μ΄λΌλ λ»μ΄λΌκ³ νλ, μλ°μ€ν¬λ¦½νΈμμλ 8μ§λ²μ λν μ΄λ ν κ·μΉμ΄ μλλ³΄λ€ μΆμΈ‘νλ€.
μ°μ μ μλ¬ λ©μμ§κ° μΆμ²ν΄ μ£Όλ λ°©λ²μ²λΌ μ«μκ° μλ λ¬Έμμ΄λ‘ λ§λ€μλλ°, μ΄ μλ¬κ° μ λ°μνλμ§, μ₯ν 리ν°λ΄μ 무μμΈμ§, κ·Έλ¦¬κ³ λ€λ₯Έ ν΄κ²° λ°©λ²μ μλμ§ κΆκΈν΄ μ°Ύμ보μλ€.
π§ μ²μ μμ±ν μ½λ
describe('μλ νμ μ ν¨μ± κ²μ¬', () => {
const validTryCounts = [1, 5, 99];
const invalidTryCounts = [-1, 02, 'abc', '@']; // 02 λ‘ μμ±
test('μμ μ μκ° μλλ©΄ μ€ν¨', () => {
invalidTryCounts.forEach((tryCount) => {
expect(isValidTryCount(tryCount)).toBe(false);
});
});
});
μμ κ°μ΄ 02λ‘ μμ±νλ€. 0μ΄ λ§¨ μμ μλ κ² μλ¬μ μμΈμ΄μλ€.
π‘ μμΈκ³Ό ν΄κ²° λ°©λ²
μλ¬μμ λ§νλ λ΄μ©κ³Ό μμΈμ λν΄μλ μλμ κ°μ΄ μ¬λ¬ μλ£λ€μ μμΉν΄ 보μλ€.
μ°μ 첫 λ²μ§Έλ‘ μ°Ύμλ³Έ λΈλ‘κ·Έ κΈμμ 0μΌλ‘ μμνλ Octal literalsμ JavaScript strict modeμμλ νμ©λμ§ μλλ€κ³ νλ€. ES6 λͺ¨λμ μ μνλ κ²½μ°, μ€μ½νλ μλμΌλ‘ strict modeκ° λλλ°, μ격 λͺ¨λμμλ 8μ§μ νκΈ°λ²μ μ 맀ν νκΈ°λ²μΌλ‘ κ·μ νκΈ° λλ¬Έμ΄λ€.
λ λ²μ§Έλ‘ μ°Ύμλ³Έ stackoverflow κΈμμλ μλ¬ λ©μμ§μμ μ£Όλ ν΄κ²° λ°©λ²μ²λΌ λ¬Έμμ΄ μ²λ¦¬λ₯Ό ν΄μ£Όμλ€κ³ νλ€. λ¬Όλ‘ μλ°μ€ν¬λ¦½νΈ λ΄μ₯ ν¨μμΈ parseInt( )λ₯Ό νμ©ν μ¬λλ μμλ€.
λ§μ§λ§μΌλ‘, λ 곡μμ μΈ MDNμμ μλ €μ£Όλ λ΄μ©λ μ°Ύμ보μλ€. μ λΈλ‘κ·Έ κΈμμ μ€λͺ ν κ²μ²λΌ μ격 λͺ¨λμμ 8μ§ λ¦¬ν°λ΄μ μλ¬λ₯Ό λμ§κΈ°μ μλ¬ λ©μμ§μμ μλ €μ€ ν΄κ²° λ°©λ²μ²λΌ 0μ 맨 μμ리μ λκ³ λλ¬Έμ Oλ μλ¬Έμ oλ₯Ό μμ±ν΄ '0O2'λ '0o2'μ κ°μ νμμΌλ‘ μ¬μ©νλΌκ³ μ μνλ€.
π©π»π» μμ ν μ½λ
μ 리νμλ©΄, μλ°μ€ν¬λ¦½νΈμμ μ«μ 리ν°λ΄μ΄ '0'μΌλ‘ μμνλ κ²½μ°, μ΄λ 8μ§μ(μ₯ν) 리ν°λ΄λ‘ ν΄μλλ€. μ΄λ νλμ μλ°μ€ν¬λ¦½νΈ μμ§μμλ μ¬μ©λμ§ μλ ꡬμ λ¬Έλ²μ΄λ€.
κ·Έλ κΈ°μ μ΄λ₯Ό μ¬μ©νλ €κ³ ν λ "Octal literals are not allowed"λΌλ μλ¬κ° λ°μνλ€. λ°λΌμ 02μ κ°μ κ°μ ν μ€νΈνκ³ μ νλ κ²½μ°, 02μ κ°μ μ«μ λμ '02'μ κ°μ΄ λ¬Έμμ΄λ‘ ννν΄μΌ νλ€.
μλλ μμ λ μ½λλ€.
describe('μλ νμ μ ν¨μ± κ²μ¬', () => {
const validTryCounts = [1, 5, 99];
const invalidTryCounts = [-1, '02', 'abc', '@']; // '02'μ κ°μ΄ λ¬Έμμ΄λ‘ λ³κ²½
test('μμ μ μκ° μλλ©΄ μ€ν¨', () => {
invalidTryCounts.forEach((tryCount) => {
expect(isValidTryCount(tryCount)).toBe(false);
});
});
});
λκΈ