2017-12-04 2 views
2

를 선도 수를 보여 코드 :자바 스크립트, 나는 자바 스크립트에 새로운 오전 제로

function sayHello(name, age) { 
 
    document.write (name + " is " + age + " years old."); 
 
}
<p>Click the following button to call the function</p> 
 
<form> 
 
    <input type="button" onclick="sayHello('abc', 010)" value="Say Hello"> 
 
</form> 
 
<p>Use different parameters inside the function and then try...</p>

내가 'ABC으로 매개 변수를 보낸다 '와

출력 010하지만 출력에 나는 아래와 같이 점점 오전 : ABC는 8 살입니다

+0

넌 문자열로'010' 전달한다. 또는 연결하기 전에 연령을 문자열로 변환하십시오 – Eddie

답변

2

010을 수행하면 8 진수 인 8으로 처리됩니다. 8 진수의 십진수 표기 0108입니다. 그것이 8을 보는 이유입니다.

어느 제로 것을 제거 이하

같은 문자열로 전달

function sayHello(name, age) { 
 
    document.write (name + " is " + age + " years old."); 
 
}
<p>Click the following button to call the function</p> 
 
<form> 
 
    <input type="button" onclick="sayHello('abc', '010')" value="Say Hello"> 
 
</form> 
 
<p>Use different parameters inside the function and then try...</p>

3
JavaScript가 0 덧붙일 수를 만나면,이 진수를 따라서,도 8을 사용하는 것으로 가정

Eddie가 의견에 언급했듯이이 문제를 피하는 가장 좋은 방법은 숫자를 따옴표로 묶어 문자열로 변환하는 것입니다. 희망이 아래의 예제는 도움이!

onclick="sayHello('abc', '010')" 

을 시도하고 명시 적으로 문자열을 숫자로 변환 + 기호를 사용합니다.

console.log('age: ' , +age); //print age: 10 
+1

좋고 깨끗한 설명 :) upvote – moon

0

Javacript 엔진은 8 진수 literals.It가 EMCA Spec 010의 부록에 정의 된 바와 같이된다 앞에 0을 해석 8 * 1 = 8

관련 문제