논리연산자
OR ||
피연산자가 모두 false인 경우를 제외하고는 모두 true
첫 번째 Truthy를 찾는 것
hour가 10보다 작거나 18보다 큰 것에 해당한다면 블록 안의 조건을 수행한다.
OR 연산자가 여러개인 경우
- 가장 왼쪽 피연산자부터 시작하여 오른쪽으로 나아가며 피연산자를 평가한다.
- 각 연산자를 불린형으로 변환한다. 변환 후 그 값이 true 이면 연산을 멈추고 해당 피연산자의 변환 전 원래 값을 반환한다.
- 피연산자 모두를 평가한 경우(모든 피연산자가 false로 평가되는 경우) 엔 마지막 피연산자를 반환합니다.
AND &&
두 피연산자가 모두 참(true)일 때 값을 반환하며, 그 외엔 false를 반환한다.
첫 번째 Falsy를 찾는 것
- 첫 번째 False를 만나면 반환한다.
- 두 피연산자가 모두 True이면 마지막 값을 반환한다.
AND 를 이용해 조건식 작성 (비 권장)
AND를 이용해서 조건식을 작성하면,
(x>0)가 참이어야 다음 연산자인 alert가 실행되므로 if와 동일하게 동작한다.
다만, 비권장됨
NOT !
!! = Boolean형으로의 암시적 형변형
피연산자로 함수가 온다면?
함수의 반환값을 특정 하지 않는 경우 'undefined'라는 것을 알아야 한다.
첫 번째 피연산자인 alert(1)이 실행되면 콘솔에 1이 찍히고 함수의 반환값인 undefined가 반환된다.
때문에 1번은 False가 된다.
두 번째 피연산자인 2가 True가 되어 전체를 감싸는 alert가 실행되며 2가 출력되고 끝난다.
OR AND가 함께 들어간 조건식 : AND가 항상 먼저 실행된다.
논리합 할당연산자
Optional Chaining ?.
물음표 앞이 null이나 undefined가 뜨면 뒤를 실행하지 않는다.
따라서, nulldlsk undefined가 userName이나 password에 저장되면 뒤에 문법이 실행되지 않는다!
includes 메서드
배열에 해당 값이 포함되는지 확인할 때 사용한다.
arr.includes('2') -> 배열에 문자열 2가 포함되었는지 확인
switch ... case 문
if문과 switch문의 차이
if문 -> 맞는 조건에 도달할때까지 계속해서 조회를 함
switch문 -> 해당하는 조건에만 들어가서 조회를 함
조건문이 많을 때는 switch문이 효율적일 수 있다.
switch case문은 '일치비교'가 일어난다.
값의 형식까지 동일한 일치비교 '===' 가 실행된다.
switch 날짜 출력하기
** 입력 받은 숫자를 반드시 + 연산을 통해 숫자로 변경해주자! -> prompt는 문자열로 받아지니까!
난수 생성 : Math.random()
Math.random() 을 하게 되면 랜덤으로 난수를 생성한다. 이 때
범위는 0~ 0.999999999999이렇게 나온다.
Math.random() * 6 을 하게 되면 0~ 5.xxxxxxxxx까지 나오게 될 것이다. 따라서 뒷부분을 floor로 절삭을하면 0~5까지의 랜덤한 수를 구할 수 있다.
ㄴ 랜덤으로 요일 구하기
위의 예제를 함수를 이용해 관리해보면 ~??
*함수를 만들 땐 재사용성을 고려하여 (!!관심사의 분리) separation of concern
ㄴ 각자의 기능만 수행할 수 있도록 분리하여 만들어주자
ㄴ 결과값은 그를 모두 취합하여 수행하도록
Nullish 연산자 ??
정.의.된 값을 찾는다!! (null과 undefined가 아닌)
||s는 첫 번쨰 trutthy를 반환하고
??는 첫 번째 정의된 값을 반환한다.
??는 의도적으로 정의된 값에 대해서는 밖에 내내 된다.
Nullish 연산자를 이용하여 조건문 작성하기~
emailAddress가 undefined이거나 null이면 뒤에 문자가 실행된다.
반복문
반복 '문' = 값을 반환하지 않는다!
while
iteration 의 약자 i!
i가 3보다 작을 때 까지 while문이 돈다.
'JS' 카테고리의 다른 글
JS #6-자바스크립트 기초 개념6 (함수표현식, 화살표함수) (2) | 2024.01.30 |
---|---|
JS #5-자바스크립트 기초 개념5 (반복문, 함수) (0) | 2024.01.25 |
JS #3-자바스크립트 기초 개념4-문자형변환, 조건문 (1) | 2024.01.23 |
JS #3-자바스크립트 기초 개념3 (0) | 2024.01.22 |
JS #2-자바스크립트 기초 개념2 (전역 실행 환경, TDZ) (0) | 2024.01.19 |