-
[javascript] 50. 함수 매개변수(function parameters) - 자바스크립트 강좌Web/JavaScript 2015. 6. 13. 15:34
JavaScript Function Parameters
함수는 매개변수 값을 검사하는 어떤 행위도 하지 않습니다.
1. Function Parameters and Arguments
함수 매개변수(parameter)는 함수 선언 안에 나열된 이름들(names)입니다.
함수 인자(arguments)는 함수에서 넘겨 받은 실제 값(values) 입니다.
2. Parameter Rules
함수 선언은 매개변수의 데이터 타입을 명시하지 않습니다.
함수는 넘겨받은 인자에 대한 타입 검사를 수행하지 않습니다.
함수는 넘겨 받은 인자의 수를 검사하지 않습니다.
3. Parameter Defaults
인자없이 함수가 호출되었을 경우, 빠진 인자 값들은 undifined로 설정 됩니다.
가끔은 위와 같은 상황을 허용하지만, 기본 값을 매개변수에 두어 할당하는 방법이 더 좋은 방법입니다.
1234567function myFunction(x, y) {if (y === undefined) {y = 0;}}cs 아니면, 더 간단하게 아래처럼 작성 할 수 있습니다:
1234function myFunction(x, y) {y = y || 0;}cs * y가 선언 되어지고, y || 가 y를 반환 한다면, y는 true 이기 때문입니다. y가 0을 반환한다면, y는 undefined 이기 때문입니다.
4. The Arguments Object
함수는 인자 객체에 의해 호출되는 내장된 객체 입니다.
인자 객체는 함수가 호출될 때, 사용될 인자 값들의 배열을 포함합니다.
12345678910111213141516171819202122232425<!DOCTYPE html><html><body><p>Finding the largest number.</p><p id="demo"></p><script>function findMax() {var i, max = 0;for(i = 0; i < arguments.length; i++) {if (arguments[i] > max) {max = arguments[i];}}return max;}document.getElementById("demo").innerHTML = findMax(4, 5, 6);</script></body></html>cs 아니면 모든 입력 값을 요약하여 함수를 생성할 수 있습니다:
12345678910x = sumAll(1, 123, 500, 115, 44, 88);function sumAll() {var i, sum = 0;for (i = 0; i < arguments.length; i++) {sum += arguments[i];}return sum;}cs 5. Arguments are Passed by Value
함수 호출에 있어서 매개변수는 함수의 인자(argument) 입니다.
자바스크립트 인자 값은 값을 넘겨 받습니다(passed by value): 함수는 값만 알지, 값의 위치는 모릅니다.
함수가 인자 값을 변경하면, 매개변수의 원본 값은 변하지 않습니다.
인자 값 변경은 함수 바깥에서는 보여지지 않습니다.
6. Objects are Passed by Reference
자바스크립트에서, 객체 참조는 값입니다.
이러한 이유로, 객체는 참조에 의해 넘겨 받습니다(passed by reference):
함수가 객체 속성을 변경하면, 원본 값은 변합니다.
'Web > JavaScript' 카테고리의 다른 글
[javascript] 53. HTML DOM - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 52. closure - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 51. 함수 호출(function invocation) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 49. 함수 선언(function definitions) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 48. 객체 프로토타입(Object prototype) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 47. 객체 메소드(Object methods) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13