러닝 자바스크립트 5장 정리

산술 연산자
- C언어와 거의 동일, 전위 연산자는 먼저 변수의 값을 바꾼 다음에 평가하고 후위 연산자는 값을 바꾸기 전에 평가한다.
let x = 2;
const r1 = x++ + ++x; // 2+3 = 5, x는 4
const r2 = ++x + ++x; // 5+6 = 11, x는 6
const r3 = x++ + ++x; // 6+8 = 14, x는 8
연산자 우선순위
- 괄호가 가장 먼저이고 그 다음 곱셈과 나눗셈, 마지막으로 덧셈과 뺄셈을 한다. 우선순위가 같은 연산자들은 오른쪽에서 왼쪽으로, 왼쪽에서 오른쪽으로 평가한다.
비교 연산자
- 일치함 (' === '), 동등함 (' == '), 대소 관계의 세가지 타입으로 나뉜다. 두 값이 같은 값을 가리키거나 같은 타입이고 값도 같으면 일치한다고 한다. 한편 두 값이 같은 객체를 가리키거나 같은 값을 같도록 변환할 수 있다면 동등한다고 한다.
논리 연산자의 단축평가
- AND 연산에서는 x의 값이 거짓 같은 값이면 모두 평가하지 않아도 false임을 알 수 있다. 이런 동작을 단축 평가라고 한다.
const skipIt = true;
let x = 0;
const result = skipIt || x++;
- 세 번쨰 행에서 단축 평가가 일어나므로 x의값은 그대로 0이된다.
조건 연산자
- 자바스크립트의 유일한 3항 연산자 if ~ else 문과 동등한 표현식
const doIt = false;
const result = doIt ? "Did It!" : "Didn't do it";
- 물음표 앞의 첫 번쨰 피연산자가 참 같은 값이면 식의 값은 두변째 피연산자이고 거짓 같은 값이면 식의 값은 세번째 피연산자가 된다.
쉼표 연산자
- 표현식을 결합하여 두 표현식을 평가한 후, 두 번째 표현식의 결과를 반환한 것이다.
let x = 0, y = 10, z;
z = (x++, y++);
- x와 y는 1만큼 늘어나지만 z의 값은 10으로 y++가 반환하는 값 그대로이다.
해체 할당
- 객체나 배열을 변수로 해체할 수 있다.
객체 해체
const obj = { b : 2, c : 3, d : 4 };
const { a,b,c } = obj;
a; // undefined
b; // 2
c; // 3
d; // ReferenceError
- 객체를 해체할때는 반드시 변수 이름과 객체의 프로퍼티 이름이 일치해야 한다. 프로퍼티 이름이 유효한 식별자만 해체후 할당되기 때문이다.
배열 해체
const arr = [ 1, 2, 3 ];
let [ x, y ] = arr;
x; // 1
y; // 2
z; // ReferenceError
- x는 배열의 첫 번째 요소 , y는 두 번쨰 요소 값을 할당받는다. 그 뒤의 배열 요소는 모두 버려진다.
const arr = [ 1, 2, 3, 4, 5 ];
let [ x, y ... rest ] = arr;
x; // 1
y; // 2
rest; // [ 3, 4, 5 ]
- 변수 rest에 나머지가 저장된다.
if ... else문을 3항 연산자로 바꾸기
if (isPrime(n)) {
label = 'prime';
} else {
label = 'non-prime';
}
위의 코드는 다음과 같이 바꿀 수 있다.
label = isPrime(n) ? 'prime' : 'non-prime';
if 문을 단축 평가하는 OR 표현식으로 바꾸기
if (!options) options = {};
다음과 같이 바꿀 수 있다.
options = options || {};
'Learning JAVA script' 카테고리의 다른 글
| 러닝 자바스크립트 8장 정리 (0) | 2019.11.15 |
|---|---|
| 러닝 자바스크립트 7장 정리 (0) | 2019.10.13 |
| 러닝 자바스크립트 6장 정리 (0) | 2019.10.11 |
| 러닝 자바스크립트 4장 정리 (0) | 2019.10.09 |
| 러닝 자바스크립트 3장 정리 (0) | 2019.10.04 |
