2015-01-30 2 views
0

왜 eval (0047)은 값 39를 반환합니까? (047과 00047은 같은 결과를 산출합니다)Javascript eval (0047) returns 39

그리고 왜 eval (056)은 46의 값을 반환합니까?

하지만 ... eval (0048)은 예상대로 48의 값을 반환합니다!

분명히 중요한 0과 관련이 있습니다.하지만 알아낼 수는 없지만 도움을 얻을 수 있습니다.

+3

8 진수이기 때문에! – Bergi

답변

1

8 진수입니다. 4는 "8 's"장소가 아닌 "10 's"장소입니다.

4 * 8 = 32 + 7 = 39

3

당신은 JS는 걸 볼 수 있도록 그냥 0와 정수 리터럴 시작을 필요로하고 어떤 자리보다 큰 7없는 경우, eval 필요하지 않습니다 an octal literal value을 표현한다.

마찬가지로
console.log(011) // 9 

hexadecimal에 대한 : 예를 들어

console.log(0xcd) // 205 

는 MDN에 Integers 섹션을 참조하십시오.

+0

아하 이제 말이 되네, 고마워! –

관련 문제