
var a = 0;
for(var i = 5; i--;){
	a++;
}
console.log(a);
var b = 0;
for(var i =5; i--, i;){
	b++;
}
console.log(b);
a : 5
b : 4
위의 문제의 경우, a()와 b()의 차이점은 반복문 안의 ,연산자 유무 차이이다.
a()의 경우, i--이기 때문에 처음 loop를 실행할때의 i의 초기값은 5가 되며 반복문과 마찬가지로 5 → 4 → 3 → 2 → 1  으로 진행이 된다.
b()의 경우, ,연산자가 있기 때문에 i--, i에서 결과값인 i--가 된 i의 값은 결과값이자 초기값이 되기 때문에 이 경우의 i의 값은 4가 되며 반복문과 마찬가지로
4 → 3 → 2 → 1 으로 진행이 된다.
JavaScript 인터프리터가 계산하여 값을 구할 수 있는 JavaScript 구절
즉, 값을 만들 수 있으면 표현식이라고 한다.
간단한 표현식에 연산자가 결합이 된 것
2 + 2 + 3
왼쪽에서 오른쪽 방향으로 진행한다.
x = y = 2
오른쪽에서 왼쪽 방향으로 진행한다.
앞의 결과 값이 false라면 뒤를 실행하지 않는다.
a() && b();
function a(){
	console.log(1);
    return false;
}
function b(){
	console.log(2);
    return true;
}
위의 예시의 경우, 만약 a()의 결과 값이 false라면 b()를 실행하지 않는다.
따라서 결과는 아래와 같이 출력이 된다.
1
false
console.log(1) + console.log(2);
function a(){
	console.log(1);
    return false;
}
function b(){
	console.log(2);
    return true;
}
function fn(a, b){
	return a && b;
}
fn(a(), b());
위 예제의 실행과정은 아래와 같다.
fn()을 호출한다.a()라는 피연산자를 먼저 실행하게 된다.b()라는 피연산자를 실행한다.fn함수에 a와 b의 값을 넣고 실행한다.1
2
1
2
false
따라서 결과는 위와 같이 출력이 된다.
앞의 결과 값이 true라면 뒤의 값을 실행하지 않는다. 주로 default값을 만들기 위해 자주 쓰인다.
function fn(options){
	options = options || {};
}
위 코드에서 options이라는 값은 optional이기 때문에 넣어도 되고 안넣어도 되는 값이다. 만약 options에 값을 안넣고도 기본값을 지정하고 싶은 경우에는 위와 같은 코드로 많이 사용한다.
해당 포스팅은 썬한 코딩, 입사에 필요한 JS기술의 내용을 보며 공부한 것을 정리한 내용입니다.