여기서 코드적으로 중요한 부분은 || 의 경우 앞에서부터 검사하게 되는데 앞이 true가 나와버리면 어차피 전체 결과는 true로 반환된다. 즉 뒤의 2가지 검사는 하지 않고 반환하기 때문에 시간적으로 걸리는( 함수 등..) 을 앞에 넣어버리는 것 보다 빠르게 결과가 나오는 것을 앞에 두는 것이 효율적인 코드라고 할 수 있다.
&&도 마찬가지로 한가지만 나오면 false를 반환하기 때문에 결과를 보고 순서를 정해야 한다.
위의 코드에서 check()는 true를 호출한다.
||의 경우 앞에다 둬서 2가지 항을 건너 뛸 수 있고
&&의 경우 나머지 2개의 값이 false이기 때문에 굳이 함수호출을 하지 않고 false를 반환하기 때문에 뒤에다 두는것이 좋다.
= Equality
=는 대입연산자
== 는 loose equality
=== 는 strict equality
위에서 test1 과 test2는 각기 다른 레퍼런스를 가지고 있다 -> false
만약 test2의 값이 test1일 경우 ==에서는 true를 출력하고 ===에서는 false를 출력한다.
test3은 test1을 전부 받아왔기 때문에 (레퍼런스도 동일) ===에 대입시 true를 출력한다.
여기서 null의 경우 undefined 와 같지만 레퍼런스는 다르다
null == undefined // true
null === undefined // false
if, else if , else
다른 언어와 같다.
constname1 = 'yoon';
if(name1 ==='yoon'){
console.log('collect');
} elseif(name1 === 'tester') {
console.log('tester');
} else {
console.log('unknown');
}
//ternary operator
console.log(name1 ==='yoon'? 'yes' : 'no'); // yoon 이 맞으면 yes 출력 아니면 no
switch 문
정해져 있는 타입을 검사할 때 switch 사용이 좋다. (API 검사 등)
while / do while 문
조건이 false가 될 때 까지 반복
위의 예제는 while은 반복시 1씩 줄어든다.
3, 2, 1 일때 반복 하고 i가 0이 된 순간 반복하지 안는다 즉 i는 0인 상태
밑의 do while 의 경우에는 do 문을 먼저 시행한다. 그리고 나서 i의 상태를 검사