일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- animating
- autodesk
- C언어
- visualstudio
- c++
- 오블완
- Costume
- charactercreator
- 티스토리챌린지
- 프로그래밍
- 3d
- HTML
- 언리얼엔진
- ue5
- iclone
- 개발
- modeling
- character
- 애니메이팅
- 개발블로그
- ANIMATION
- 마야
- JavaScript
- 3dmodeling
- UnrealEngine
- js
- cc4
- reallusion
- C
- unreal
Archives
- Today
- Total
개발나라 스용공주
[JavaScript] 단락 평가 본문
728x90
728x90
이번 글은 단락 평가에 대한 글이다.
[ 단락평가란? ]
단락 평가란 조건문을 이용하지 않고도 어떠한 함수를 호출하지 않도록 방지해주거나 어떤 값을 계산하지 않도록 제한해주는 것이다.
단락 평가의 구조는 첫번째 피연산자의 값만 이용해 연산의 결과를 확정할 수 있다면 두번째 피연산자에 접근하지 않는다.
[ &&(and)와 ||(or) ]
단락 평가를 이해하기 위해선 논리연산자 &&(and)와 ||(or)를 먼저 이해해야한다.
1) &&(and)
- true와 true => true
- true와 fasle => false
- false와 true => false
- false와 false = > false
2) ||(or)
- true와 true => true
- true와 false => true
- false와 true => true
- false와 false => false
[ 단락평가의 활용 ]
따라서 논리연산자의 구조를 보면 단락평가는 다음과 같은 상황에서 활용된다.
- false값을 가진 것에 &&이 오면 뒤에 어떤 값이 와도 결과는 false
- true값을 가진 것에 ||이 오면 뒤에 어떤 값이 와도 결과는 true
아래 예제를 보면 person이 undefined이기 때문에 person.name까지 도달하지 않는다. 따라서 변수 name은 undefined가 된다. 그리고 name은 falsy한 값인 undefined을 가지고 있고 || 이후에 있는 값은 문자열로 truthy한 값이므로 문자열 "person의 값이 없음" 이 반환된다.
function printName(person) {
const name = person && person.name;
console.log(name || "person의 값이 없음");
}
printName();
반면 아래 코드와 같이 name에 황서영이라는 값을 넣어주게 되면 person이 truthy한 값이 되므로 person.name의 값까지 읽게 되어 name에 해당 값이 들어간다. 따라서 변수 name이 truthy한 값이 되어 name의 값이 출력된다.
function printName(person) {
const name = person && person.name;
console.log(name || "person의 값이 없음");
}
printName({ name: "황서영" });
728x90
728x90
'WEB > JavaScript' 카테고리의 다른 글
[JavaScript] Spread와 Rest (0) | 2024.11.30 |
---|---|
[JavaScript] 배열과 객체의 구조분해할당 (0) | 2024.11.30 |
[JavaScript] Truthy한 값과 Falsy한 값 (0) | 2024.11.29 |
[JavaScript] 콜백함수 callback function (0) | 2024.11.27 |
[JavaScript] 함수표현식 - 변수 안에 함수 넣어주기 (0) | 2024.11.25 |
Comments