강좌 & 팁
안녕하세요. 송기석입니다.
새해 복 많이 받으세요.
한 주가 너무 빨리 갑니다. 하루 하루가 순식간에 사라져 버리는 듯한 느낌입니다. 이렇게 빠른 시간은 제가 그만큼 열심히 살고 있기 때문이라고 믿고 하루 하루를 소중히 보내고 싶습니다.
인수 배열(arguments)
var sum = function () { var i, sum = 0; for (i = 0; i < arguments.length; i += 1) { sum += arguments[i]; } return sum; }; console.log(sum(4, 8, 15, 16, 23, 42)); // 108
성자 함수를 사용하는 스타일은 권장 사항이 아닙니다.
반환
함수는 항상 값을 반환합니다. 반환값이 지정되지 않으면 undefined가 반환됩니다. 함수는 return문을 만나면 함수의 끝에 도달하기 전에 제어를 반환할 수 있습니다. 함수를 new와 함께 실행하고 반환값이 객체가 아닌 경우 반환값은 새로운 객체(this)가 됩니다.
예외
다음은 예외 처리에 대한 코드입니다.
var add = function (a, b) { if(typeof a !== 'number' || typeof b !== 'number') { throw { name: 'TypeError', message: 'add needs numbers' }; } return a + b; }; var try_it = function () { try { add("seven"); } catch (e) { console.log(e.mame + ': ' + e.message); } }; try_it(); // "undefined: add needs numbers"
try 블록 내에서 예외가 발생하면 catch 블록으로
제어가 이동합니다. try 문은 모든 예외를 포착하는 하나의 catch
블록만을 갖습니다. 만약 예외 상황에 따라 그에 맞게 대처하고 싶은 경우 예외 객체의 name 속성을 확인하여 그에 맞게 처리하면 됩니다.