2017-12-16 19 views
-3

변수의 출력됩니다. 그냥 함수의 결과를 변수에 씁니다.은 왜 내가 OK 수 15 그게 전부를 얻을 것이다 <code>value(5);</code>를 입력 할 때이</p> <pre><code>var value = function(a){return a*3;} var number = value(a); </code></pre> <p>같은 간단한 코드를 작성하지만, <code>number;</code>를 입력 한 후 병이 <code>NaN</code>을 얻을 NaN이

+0

죄송합니다, 그것은 다소 불분명하다. 그래서 예상대로 작동합니다. 번호를 어디에 써야할까요? 모든 샘플 유스 케이스? –

+1

'a'를 인자'var number = value (a); '로 전달하고'a'가 숫자를 가지고 있지 않기 때문에 그렇습니까? – claudio

+0

다음과 같은 코드의 경우 :'var value = function (a) { return * 3; } var number = value (5); console.log (number);'나는'15'을 얻는다. 당신의 질문이 무슨 의미인지 모르겠다. –

답변

0

JavaScript는 computer algebra system이 아니며 x * 3과 같은 대수 표현식을 변수에 저장할 수 없습니다. 대신 수행 할 때

var y = x * 3; 

변수 y 그 문이 실행되었을 때 했다 x 것을 3 배의 값으로 설정됩니다. x에 이전에 할당 된 값이없는 경우 기본값은 undefined입니다. 그리고 JavaScript's arithmetic rules에 따라 undefined은 으로 자동 변환되며, NaN * 3NaN과 같습니다.

는 (사실, 당신이 먼저 변수 x를 선언하지 않고 위의 코드를 실행하려고하면, 점점해야 무엇을하는 ReferenceError: x is not defined 예외입니다.하지만 당신이 그 코드 전에 var x; 문을 추가하는 경우, 변수를 선언 x이지만 값을 정의하지 않은 채로두면 이 y이됩니다.

함수 내에서 곱셈을 끝냈다는 사실은 아무런 의미가 없습니다. 다음 코드 :

var f = function (a) { return a * 3 }; 
var y = f(x); 

이하는 똑같은 일이 같은 :

var y = x * 3; 

(., 제외 물론, 이전 버전도 기능 f을 정의한다는 사실을)