본문 바로가기

JavaScript

논리연산자를 이용한 값 할당

truthly값  혹은 falsy값을 실제 boolean 값으로  전환

 

truthly와 fasly를 모르신다면, 해당 게시글을 확인하시고 오시면 이해하시는데 도움이 될 것입니다.

 

 

Falsy and Truthy values

Falsy and Truthy values JavaScript가 이면에서 조건문을 평가하는 방식입니다. 일반적으로 JavaScript에서 조건문은 참 또는 거짓의 값으로 동작하는데, const nameInput = "sh"; if (nameInput === "sh") { //..

nicehyun12.tistory.com

 

truthly값 혹은 falsy값 앞에 '!!'를 붙여주면 실제 boolean 값으로 변환할 수 있습니다. 

 

truthly값 앞에 '!'을 붙여주면 false로 변환되는데, '!'를 하나 더 붙여주면 false를 true 값을 얻을 수 있습니다.

 

 

const userInput = '';
const isValidInput = !!userInput;

console.log(isValidInput);     //false 반환

빈 문자열을 담은 상수 userInput 앞에 !!를 붙여 fasly값을 실제 boolean 값인 false로 변환 후, 상수 isValidInput에  할당하였습니다.

 

 

이렇게 truthly값 혹은 falsy값을 실제 boolean 값으로 변환하여 값을 할당할 수 있습니다.

 

숫자를 사용할 경우 truthly값인 숫자를 true값으로 변환하여 실제 boolean 값으로 사용할 수도 있습니다.

 

해당 부분은 빈 문자열을 false로 변환, 0을 제외한 모든 숫자를 true로 변환하는 방법으로 알아두시면 좋을 것 같습니다.

 

 

 


 

OR연산자를 이용한 값 할당

OR연산자를 이용하여 기본값을 상수나 변수에 할당할 수 있습니다.

 

해당 부분을 이해하기 위해서는 OR연산자의 작동방식에 대한 이해가 필요합니다.

 

 

 

표현식과 연산자 - JavaScript | MDN

이번 장에서는 JavaScript의 표현식과 함께 할당, 비교, 산술, 비트 계산, 논리, 문자열, 삼항 등 다양한 연산자를 살펴보겠습니다.

developer.mozilla.org

 

값 1 || 값 2

OR연산자는 하나의 값만 true이면, true를 반환합니다.

 

때문에 값 1이 true나 truthly값이라면 값 2를 확인하지 않으며,  값 1이 false나 falsy값이라면  값 2를 확인합니다.

 

 

 

const userInput = '';  // 사용자입력

const userName = userInput || 'LSH';

console.log(userName); // 'LSH'출력

상수 userInput이 빈 문자열 즉, falsy값입니다.

 

때문에 JavaScript는 두 번째 값인 'LSH'를 확인하게 되며, truthly값이기 때문에 'LSH'가 반환되고 

 

상수 userName는 'LSH'를 할당받게 됩니다.

 

만약 userInput의 값이 빈 문자열이 아니라 'SH'였다면, truthly 값이기 때문에 'LSH'까지 확인하지 않고 'SH'를 반환하고

userName는 'SH'를 할당받게 됩니다. 

 

이러한 작동방식 때문에 OR연산자를 이용하여 변수나 상수에 기본값 혹은 대체값을 할당할 수 있습니다.

 

 

정리

OR연산자는 첫 번째 값이 true이면, 첫 번째 값을 반환하고 

 

첫 번째 값이 false이고 두 번째 값이 true이면, 두 번째 값을 반환합니다.

 

첫 번째 값과 두 번째 값 모두 false라면 두번 째 값을 반환합니다.

 

 


 

AND연산자를 이용한 값 할당

 

값 1 && 값 2

AND연산자의 경우 값 1과 값 2 모두  true가 되어야 true를 반환합니다.

 

때문에 값 1이 true 혹은 truthly값인 것을 확인했어도 값 2까지 확인을 하게 됩니다.

 

 

 

const userInput = 'LSH';

const userName = userInput && 'SH';

console.log(userName); // 'SH' 출력

상수 userInput 은 truthly값을 가지고 있고, 'SH' 또한 truthly값입니다.

 

모두 truthly값일 경우 마지막 값을 반환하기 때문에 'SH'를 반환하고,  상수 userName는 'SH'를 할당받게 됩니다.

 

 

const userInput2 = '';

const userName2 = userInput2 && 'SH';

console.log(userName2); // ''출력

 

만약 상수 userInput이 빈 문자열 즉, falsy값이면 ' '(빈문자열)를 반환하고, 상수 userName2는 ' '를 할당받게 됩니다.

 

 

 

정리

AND연산자는 값이 모두 true이면, 마지막 값을 반환하고 

 

첫 번째 값이 true이고 두 번째 값이 false이면, 두 번째 값을 반환합니다.

 

첫 번째 값이 false이면, 항상 첫 번째 값을 반환합니다.

 

 

 

  

'JavaScript' 카테고리의 다른 글

for - of / for - in 반복문  (0) 2022.08.15
swich - case  (0) 2022.08.15
삼항 연사자  (0) 2022.08.14
isNaN  (0) 2022.08.11
Falsy and Truthy values  (0) 2022.08.08