본문 바로가기
개발 공부 일지/JavaScript

자바스크립트 - 조건문 Falsy, Truthy

by yelimu 2024. 7. 18.

실습하다가 이해가 안되는 부분에 대해 아래와 같이 답변이 있었다!

 

javascript의 조건식은 유연한 편입니다.

문자열이 조건식으로 사용되면 true로 식별됩니다. (빈문자열 ""은 false)

 

만약에 'data-title'이라는 비표준 속성이 없다면,

e.target.dataset.title의 값은 undefined가 됩니다.

javascript에서 0, null, undefined 는 모두 false로 간주됩니다.

 

https://www.codeit.kr/community/questions/UXVlc3Rpb246NjI0NDYzYmY4ODdlYmEzZjkzYjMzYzIz

 

if문의 () 이 괄호 안에는 결과가 참/거짓인 조건문이 들어가야 하지 않나요,,?

if (e.target.dataset.title) 이라고 답안에 나와있는데if (조건식) { 실행문; }이런 구조에서 조건식이 참이면 실행문이 실행되고 거짓이면 실행되지 않거나 else if, else로 넘어간다고 알고 있는데console.lo

www.codeit.kr

 

빈 스트링(' '), 0, null, undefined  -> falsy

'asdqd', 1123, 객체 -> truthy

자바스크립트에서는 falsy, truthy 도 false, true 로 받는다


첫 번째 객체가 거짓 같은 값이라면, 해당 객체를 반환 = 왼쪽값

console.log(false && "dog");
// ↪ false

console.log(0 && "dog");
// ↪ 0


첫 번째 피연산자가 참인 경우, 논리적 AND 연산자 두 번째 피연산자를 반환합니다. = 오른쪽 값

true && "dog"
// "dog" 반환합니다.

[] && "dog"
// "dog" 반환합니다.


 

AND 연산자 OR 연산자  
true && true true || true AND :참이야? 넘겨
OR: 참이야? 내가 가져
true && false true || false
false && true false || true AND: 거짓이야? 내가 가질게..
OR : 거짓이야? 넘겨
false && false false || false

OR 연산자는 반대롱~ ㅠㅜ

 

연산자가 섞여있다면 AND 연산자&&가 OR 연산자|| 보다 우선 순위가 높다 


function print(value) {
    const message = value || 'Codeit';

    console.log(message);
}

print();
print('JavaScript');

 

조건문처럼 사용 가능

파라미터를 받으면 그대로 출력하고

빈 함수를 호출하면 지정된 값을 출력하도록 하는 함수

 

https://developer.mozilla.org/ko/docs/Glossary/Falsy

 

 

거짓 같은 값 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

거짓 같은 값(Falsy, falsey로 쓰이기도 함) 값은 Boolean 문맥에서 false로 평가되는 값입니다.

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Glossary/Truthy

 

참 같은 값 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

JavaScript에서, 참 같은 값(Truthy)인 값이란 불리언을 기대하는 문맥에서 true로 평가되는 값입니다. 따로 거짓 같은 값으로 정의된 값이 아니면 모두 참 같은 값으로 평가됩니다(예: false, 0, -0, 0n, "",

developer.mozilla.org

 

!! 처리를 하면 

falsy -> false, truthy -> true 로 바꿔준다