할당연산자
숫자 사칙연산은 적용해본 적도 있고 알고 있었지만
문자열 연결 연산자는 처음본다
비교연산자
삼항 조건 연산자
자스의 유일한 삼항 연산자이며, 부수 효과는 없다.
하지만 삼항 조건 연산자 표현식은 if else 문과 중요한 차이가 있다.
삼조연표는 값처럼 사용할 수 있디만 if else문은 표현식이 아니라 문이라서 값처럼 사용할 수 없다
typeof 연산자
null 은 Object 다.. 기억하자... 자스의 첫 번째 버그인데 기존 코드에 영향을 줄 수 있기 때문에 아직까지 수정이 안되고 있다고 한다.
지수 연산자
ES7 에서 도입되었다.
- 지수 연산자는 이항 연산자 중에서 우선순위가 가장 높다.
연산자 우선순위
연산자 우선순위랑 여러개의 연산자로 이뤄진 문이 실행될 때 연산자가 실행되는 순서
- 연산자는 종류가 많아서 연산자 우선순위를 모두 기억하기 어렵다.
- 기억에 의존하지 말고 그냥 우선순위가 가장 높은 그룹 연산자를 사용하여 우선순위를 명시적으로 조절하는 것을 권장
블록문에는 세미콜론(;)을 안붙힌다 (eslint)가 다 잡아주긴 해도 알고는 있어야지
조건문
만약 코드 블록 내의 문이 하나뿐이라면 중괄호를 생략할 수 있다??
조건문에서 if else 문의 조건식은 불리언 값으로 평가되어야 하지만 switch 문의 표현식은 불리언 값보다는 문자열이나 숫자 값인 경우가 많다. 다시 말해, if else 문은 논리적 참, 거짓으로 실행할 코드 블록을 결정한다.
switch 문은 true/false 로직보다 다양한 case에 따라 실행할 코드 블록 결정할 때 사용한다.
이렇게 하면 터진다. 핸들이 고장난 8톤 트럭 마냥 break 없이 default 까지 달려갔기 때문이다.
case 사이사이에 break 를 걸어야 11월에서 빠져 나오지... default 문에서는 break 를 생략해라.
레이블 문이라고 있는데 중첩된 for 문 외부로 탈출할 때 유용하지만 그 밖의 경우에는 일반적으로 권장하지 않음
자스에서는 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 자스의 함수는 일급 객체이므로 값으로 취급할 수 있다. 따라서 함수도 프로퍼티 값으로 사용 가능.
프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 "메서드"라고 부른다.
출처: 모던 자바스크립트 Deep Dive 책