DEV_IN/๋ฌธ์ ํ์ด
[Error] octal literals are not allowed in strict mode
๋ค๋น์น์ฝ๋๐
2023. 3. 9. 19:07
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ค, ๋ฌธ์ ์์ฒด๋ ์ด๋ ต์ง ์์์ง๋ง ๊ณ์ ํ ์คํธ ์ผ์ด์ค๊ฐ console์ ์ ๋ ฅํ์๋์ ๋ค๋ฅธ output์ returnํ๊ธธ๋ ํ์ฐธ์ ํด๋งธ๋ค..
ํ debugging tool์ ์ด์ฉํด์ ํ๋จ๊ณ์ฉ ๋ด ์ฝ๋๋ฅผ ๋ฏ์ด๋ณด๊ณ ์ ํ๋๋
"octal literals are not allowed in strict mode" ๋ ์๋ฌ์ ๋ง์ฃผ์ณค๋ค.. ์์ ์ฒ์๋ณด๋ ์๋ฌ๋ผ ์์ฑํ๋ค ๋ธ๋ก๊ทธ!
๐ซ octal literals are not allowed in strict mode
- 010๊ณผ ๊ฐ์ ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ ๋ ๋ง๋ ์ ์๋ ์ค๋ฅ๋ผ๊ณ ํ๋ค.
- es6 ๋ชจ๋์ ์ ์ํ๋ ๊ฒฝ์ฐ ๋ชจ๋์ ์ค์ฝํ๋ ์๋์ผ๋ก strict ๋ชจ๋๊ฐ ๋๋๋ฐ ํน๋ณํ strict ๋ชจ๋์์๋ ์ด์ ์ 010 ๊ณผ ๊ฐ์ 8์ง์ ํ๊ธฐ๋ฒ์ ์ ๋งคํ ํ๊ธฐ๋ฒ์ผ๋ก ๊ท์ ํด ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ํ๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก strict ๋ชจ๋์์ eval(‘010’) ๊ณผ ๊ฐ์ ํ๊ธฐ๋ฒ์ ์ฌ์ฉ์ด ๋ถ๊ฐ(eval ์์ '010' ์ 010์ผ๋ก ํ๊ฐํ๊ธฐ ๋๋ฌธ์)
- ์ฝ๊ฐ์ ๊ผผ์๋ฅผ ์ฌ์ฉํด eval(‘000’*1) ์ ๊ฐ์ด ํ๋ฉด ์ค๋ฅ์์ด 10์ง์ ๋ณํ์ด ๋จ
๐ก ๋ด๊ฐ ๋ง๋ problem
- 100,000์ผ๋ก ์จ์ค์ error ๋ฐ์ → 100000์ผ๋ก changeํด์ ํด๊ฒฐ..
function solution(price) {
if(price<100000){ //๐ซ100,000
return price;
} else if(100000<=price && price<300000){ //๐ซ100,000 && //๐ซ300,000
return Math.floor(price*0.95);
} else if (300000<=price && price<500000){
return Math.floor(price*0.9);
} else if(500000<=price) {
return Math.floor(price*0.8);
}
}