pageinfo | |
---|---|
status | Draft |
Javascript
문법
변수/상수 선언
var
키워드는 함수 내에서, let
키워드는 중괄호 블록 내에서 변수 범위를 한정한다. 상수는 const
키워드를 사용하며, 선언과 동시에 초기화해야 한다. 단 변수가 객체를 참조할 경우(예: const a = {b: 3};
) 참조를 바꾸는 것은 허용되지 않으나 참조 값을 바꾸는 것은 가능하다(예: a.b = 5;
)
익명 함수
자바스크립트에서 함수를 다른 함수의 매개변수로 사용하는 가장 직관적인 방식은 콜백(예: functionA( functionB, c );
)이나, 이 경우 그 함수에 이름을 붙여야 하므로 네임스페이스 충돌이 발생할 수 있다. 이를 해결하기 위해 함수 내용 자체를 매개변수로 넣는 익명 함수(예: functionA( function(){ return 1; }, c );
) 또는 화살표 함수(예: functionA( () => { return 1; }, c);
)를 사용할 수 있으며, 자바스크립트 개발자는 후자를 선호한다.
논리연산자
a == b
는 a와 b의 묵시적 값을 비교하나, a === b
는 양변의 형식도 일치하는지 비교한다. 예를 들어 ‘1‘ == 1
은 true이지만 ‘1‘ === 1
은 false다.
배열
배열에 새로운 원소를 추가하려면 push 메소드를, 길이 값을 구하려면 length 필드를 호출하라. 원소의 값을 삭제하는 데에는 delete를 사용한다(예: delete arrayA[4];
). 해당 원소의 공간 자체는 여전히 존재하고 있음을 유의하라. 만일 원소 자체를 삭제하고 나머지를 재배열하려면 splice 메소드를 사용해야 한다.
필터링
find()
메소드는 배열에서 조건에 부합하는 원소가 있을 시 그 항목을 반환한다(예: arrayAnimal.find(animal => animal === “rabbit”);
). filter()
메소드는 좀 더 복잡한(key-value 형태로 원소가 속성을 갖는) 배열을 필터링할 수 있으며(예: arrayAnimal.find(animal => animal.color === “white”);
), some()
메소드는 조건에 맞는 원소가 있을 시 true를 반환한다.
매핑
배열의 각 원소에 속성을 추가하려면 map()
메소드를 사용한다(예: arrayAnimal.map( animal => { animal.age = 1; return animal; })
).
집계
reduce()
메소드는 배열의 속성을 주어진 함수에 따라 집계하여 하나의 값으로 반환한다(예: arrayAnimal.reduce((totalAge, animal) => totalAge + animal.age, 0);
는 sum 함수 또는 유사한 역할을 하는 반복문을 대체한다).
반복문
forEach문은 for문과 달리 배열의 값과 인덱스에 접근할 수 있으며, 간결하지만 반복을 중단(break 등)할 수 없다는 특징이 있다.
Backlinks