์ฝํ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ๋ฐ๊ฒฌํ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ด์ฅํจ์ parseInt() ์ Number()์ ๋ค๋ฅธ์
์ฌ์ค parseInt() ์ Number() ๋ชจ๋ ๋ด์ฉ๋ฌผ์ด ์ ์ํ ์ซ์์ธ๋ฐ type๋ง ๋ฌธ์ํ์ผ ๊ฒฝ์ฐ์๋ ๋ ๋ค ์ซ์ํ์ผ๋ก ์ ๋ณํํด์ฃผ์ด ๋๊ฐ์ ์ญํ ์ ํ๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค.
๋๋ ์ฌํ๊น์ง ๋ ํจ์ ๋ชจ๋ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ ์ค ์์๋ค๋..
๊ทธ๋ฐ๋ฐ ๋ด์ฉ๋ฌผ์ด ์ซ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๊ฐ๊ฐ ๋ค๋ฅธ ๊ฐ์ด ๋์ค๊ณ .. ์ฐพ์๋ณด๋ ์์ฐํ ์ด๋ก ์ ์ผ๋ก๋ ๋ฌ๋ผ์ ํ๋ฒ ์ ๋ฆฌํด๋ณธ๋ค.
์ค๋์ ์ฝํ ๋ฌธ์
const arr =[ '', '', '1', '23', '' ]
๋ฌธ์์ ์ซ์๊ฐ ์์ฌ์๋ string์์ ์ ๊ทํํ์์ผ๋ก ๋ฌธ์๋ฅผ ๊ฑธ๋ฌ๋ด๊ณ ์ซ์ํ๋ง ๋จ๊ธฐ๊ณ , ๋๋จธ์ง ์ซ์๋ฅผ ๋ํด์ฃผ๋ ๊ฒฐ๊ณผ๊ฐ ํ์ํ๋ค.
๊ทธ๋์ ๊ฐ ๋ฐฐ์ด ์์๋ฅผ ์ซ์ํ์ผ๋ก ๋ฐ๊พธ๊ณ ๋ํด์ฃผ๋ฉด ๋๊ฒ ๊ฑฐ๋! ํ๊ณ ์ฒ์์๋
parseInt()๊ฐ ๋ฌธ์์ด ์ธ์๋ฅผ parsingํด์ ์ซ์๋ก ๋ฐ๊ฟ์ฃผ๋ ํจ์๋๊น! ํ๊ณ ๋ดค๋๋ฐ ๊ฒฐ๊ณผ๊ฐ์ด NaN ์ด ๋์๋ฒ๋ ธ๋ค.
์ด๋??
๋น ๋ฌธ์์ด ''์ parseInt ์ธ์๋ก ๋ฃ์ด ์ฝ์๋ก ์ฐ์ด๋ณด๋.. NaN ์ด ๋์ค๊ณ ,
Number ํจ์๋ 0 ๊ฐ์ด ๋์๋ค.
parseInt()
parseInt("20px"); // 20
parseInt("10100", 2); // 20
parseInt('Hello', 8); // NaN // ์ซ์๊ฐ ์ ํ ์๋
parseInt('546', 2); // NaN // 0๊ณผ 1์ ์ ์ธํ ์ซ์๋ 2์ง๋ฒ์์ ์ ํจํ์ง ์์
parseInt(string, radix) ๋ ํ์ฑ์ ์กฐ๊ธ ๋ ์ด์ ์ ๋ง์ถ์ด ์ธ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ ๋ค์์ ๊ทธ ๋ฌธ์์ด์ ํ์ฑํ์ฌ ์ ์๋ฅผ ๋ฐํํ๊ณ , ์ซ์๋ก ๋ณํํ ์ ์๋ ๊ฒฝ์ฐ์๋ NaN์ ๋ฐํํ๋ค.
radix๋ [optional]์ด๊ณ ์๋ฃ์ผ๋ฉด ๊ธฐ๋ณธ 10์ง์, ๋ฃ์ผ๋ฉด 2์ง์ 8์ง์ ๋ฑ ํน์ ์ง์๋ก๋ ๋ณํ์ด ๊ฐ๋ฅํ๊ธฐ๋๋ฌธ์ ์ง๋ฒ ๋ณํํ ๋ ์ ์ฉํ๊ฒ ์ธ ์ ์๋ค.
Number()
Number("20px"); // NaN
Number('foo'); // NaN
Number("2e1"); // 20, exponential notation
๋ฐ๋ฉด, Number() ๋ ๋ง๊ทธ๋๋ก ์ซ์ํ์ผ๋ก ๋ณํํ ๋ ์ฐ๋ ํจ์์ด๋ค. ์ซ์ํ ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํด์ฃผ๋ ์ฐฉ์คํ ๊ธฐ๋ฅ์ ํ๋ค.
์ธ์๊ฐ ์ซ์ํ์ด ์๋ ๊ฒฝ์ฐ์๋ NaN (Not A Number)๋ฅผ ๋ฐํํ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ๋น๋ฌธ์์ด์ด ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์ ์ซ์ํ์ผ๋ก ๋ณํํด์ ๊ณ์ฐ์ ํ๊ณ ์ถ์ผ๋ฉด Number()๋ฅผ ์จ์ผ์ง ์ํ๋ ๊ฒฐ๊ณผ๊ฐ์ ์ป์ ์ ์๋ค.
๋์ค์๋ side effect๊ฐ ์๋๋ ์ฝ๋๋ฅผ ์ง๋ ค๋ฉด ์ด๋ฐ ๊ฐ๋ ๋ค์ ์ ๊ตฌ๋ถํด์ ์ฌ์ฉํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JSON.stringify() | JSON.parse() | json() (3) | 2024.09.19 |
---|---|
api ์์ฐจ์ ์คํ | catch (err) vs catch | throw error vs return error (0) | 2024.05.22 |
TypeScript index signature ์ธ๋ฑ์ค ์๊ทธ๋์ณ (0) | 2023.09.08 |
JS ๋ฐฐ์ด ๊ฐ์ฒด์์ ์์ immutable, mutable (0) | 2023.06.26 |
JS ๊ธฐ์ ๋ฉด์ | const ํค์๋ ๊ฐ์ฒด ๊ฐ ๋ณ๊ฒฝ (0) | 2022.11.11 |