개발 공부 일지/JavaScript

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

yelimu 2024. 7. 18. 13:50

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

 

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 로 바꿔준다