논리연산자를 사용할때 꼭 true나 false를 사용하지 않아도 된다
truthy한 값이나 falsy한 값을 사용해도된다.
const dog ={
name : '멍멍이'
};
function getName(animal){
if(animal){
return animal.name;
}
return undefined;
}
const name = getName(dog);
console.log(name);
이렇게 코드를 작성해주었다.
getName이라는 function이 있는데 파라미터로 아무것도 적지 않으면 undefined를 리턴하겠다 이다.
const dog ={
name : '멍멍이'
};
function getName(animal){
return animal && animal.name;
}
const name = getName();
console.log(name);
그런데 똑같은 코드로는 이렇게 작성하면 된다.
그러니까 getName에 파라미터로 아무것도 안넣으면 위와 같이 undefined가 나온다는 것이다.
어떻게 같은 값이 나오는가?
console.log(true && 'hello');
console.log(false && 'hello');
console.log('hello' && 'bye');
이렇게 논리 연산자를 보면 &&연산자일때 둘다 true이거나 truthy인 값이면 뒤에 값이 나온다.
만약에 앞에 있는 값이 false이거나 falsy한 값이면 결과는 앞에 있는 값이 나온다.
이제 || 연산자를 보자 or연산자
const namelessDog ={
name:'',
};
function getName(animal){
const name = animal && animal.name;
if(!name){
return '이름이 없는 동물입니다.';
}
return name;
}
const name = getName (namelessDog);
console.log(name);
이렇게 getName이라는 함수를 설정해주었는데
이름이 없으면 이름이 없는 동물입니다가 나오고 있으면 name이 나오게 했다.
const namelessDog ={
name:'',
};
function getName(animal){
const name = animal && animal.name;
return name || '이름이 없는 동물입니다';
}
const name = getName (namelessDog);
console.log(name);
간단하게 해보자면
name || '이름이 없는 동물입니다' 라고 적으면 된다.
이것이 어떻게 나오는가
console.log(false || 'hello');
console.log('나다' || false);
위의 &&연산자 처럼 이것도 falsy인 값과 truthy한 값이 있으면
여기서는 truthy한 값이 무조건 나온다.
728x90
'WEB > Java Script' 카테고리의 다른 글
[Java Script ]조건문 더 스마트하게 쓰기 / 배열의 내장함수 includes/ 객체를 활용한 조건문 / 조건마다 다른 함수를 실행해야 할때 (0) | 2021.04.24 |
---|---|
[Java Script] 비구조화 할당(구조분해) 너무 어렵다!!! (0) | 2021.04.24 |
[Java Script] Truthy and Falsy/ 확인하는 방법 (0) | 2021.04.23 |
[Java Script] 삼항 연산자, 삼항 연산자의 중첩 (0) | 2021.04.23 |
[Java Script] 클래스와 상속 (0) | 2021.04.23 |