[TIL] JavaScript 2일차

함수

함수 선언문 :

function a() {}

함수 표현식 :

const b = function() {};
const c=()=>{} // 화살표 함수. 중괄호 안에 return 값 밖에 없으면 중괄호와 return 생략 가능

모든 함수에는 __return undifined__ 가 생략돼있다. __return__ 값을 지정해주면 __undifined__ 를 대체한다.

함수 안에서 return 다음 순서의 코드는 실행되지 않는다.
그러므로 return은 함수 내에서 실행하고자 하는 코드의 마지막 줄에 적어주는것이 좋다.

함수의 반환값은 문자열, undifined, 숫자, null, 객체, 함수를 반환할수도 있다.
여러개의 return 값을 반환받고 싶으면, 배열로 묶어서 반환시킬수 있다.

매개변수와 인수

함수를 선언할때는 매개변수(parameter), 함수 호출시에는 인수(argument)가 쓰인다.

func exam(parameter){
  console.log(parameter);
}
exam(argument);
<argument

매개변수가 여러개 필요한 경우도 있는데, 인수가 매개변수보다 적은 수일 경우에는 기본값인 undifined로 채워진다.
인수가 매개변수보다 많은 경우에는 에러가 뜨지 않고 필요없는 인수는 무시된다.

객체 리터럴

배열은 [], 객체는{}를 사용한다.
배열을 쓰는 이유 : 배열은 단순히 여러 값들을 묶어놓은 것이고, 객체는 값(속성)에 이름이 붙어 있다.
속성은 쉼표로 구분하는데, 마지막 속성에도 쉼표를 붙여주는게 좋다. 다음 속성을 추가할때마다 기존 속성 뒤에 쉼표를 넣어야 하는데 미리 붙여주면 실수로 붙이지 않았을 경우의 에러를 방지할 수 있다.

속성에 접근하는 방법

  • 객체이름. 속성; // 문자열로 된 속성 호출 시 에러
  • 객체이름['속성']; // 대괄호에서 따옴표를 빼먹으면 다른 변수로 인식됨

메서드

객체 리터럴의 속성값으로 함수를 넣었을 경우 이 속성을 메서드라고 한다.

객체간의 비교

객체, 함수, 배열끼리 서로 비교하면 속성이 같아도 false가 나온다.

그림과 같이 서로 내부 요소가 같아도 같은 객체가 아니기 때문이다.


변수안에 객체를 넣으면 변수가 객체를 가리키고 있는 것(참조)이기 때문에 객체를 바꾸면 변수도 바뀐다.
객체가 아닌 변수가 변수를 참조하는 경우에는 다른 결과가 나온다.
변수 a=1을 변수 b에 대입시킨다면 b는 a를 참조하는 것이 아니라 a, b 모두 1을 참조하는 것이다. 그러므로 변수 a를 바꿔도 변수 b는 여전히 1이 나온다.

좋은 웹페이지 즐겨찾기