라벨이 &&인 게시물 표시

[JavaScript] 옵셔널 체이닝 (optional chaining)

이미지
옵셔널 체이닝( ?. )을 사용하면 프로퍼티에 작성되지않은 중첩객체로 발생되는 에러를 해결할 수 있다. const information1 = { team : "A" , detailOption : { name : "lee" , age : 30 , score : { first : 10 , second : 30 , third : 50 , }, }, }; const information2 = { team : "C" , detailOption : { name : "kim" , age : 30 , }, }; const getInformation = ( person ) => { console . log ( person . detailOption . score . third ); }; getInformation 함수에 information1 을 전달하면 숫자 50을 반환하지만 getInformation 함수에 information2 을 전달하면 아래와 같이 오류를 반환한다. 에러 발생 원인은  information2 내부에 프로퍼티에 작성된 중첩객체 detailOption 내부의 프로퍼티에 작성된 score에 프로퍼티로 third가 작성되지 않았기 때문이다. 이렇게 오류가 발생할때 && (AND)연산자를 사용하여 아래와 같이 해결할 수 있었다. const information1 = { team : "A" , detailOption : { name : "lee" , age : 30 , score : { first : 10 , second : 30 , third : 50 , }, }, }; const information2 = { team : "C&qu

[JavaScript] 논리연산자- &&(and), ||(or)

&& (and) - 조건이 하나라도 false이면 false &&연산자의 경우 조건 두개(피연산자) 중 먼저 앞에서 true나 false가 나오는 경우 결과가 정해지므로 뒤에 조건은 확인하지 않는다. ( true && true )  -> true 반환  ( true && false )  -> false 반환 ( false && true )  -> false 반환 ( false && false )  -> false 반환 if( a > 0 && b < 0 ){ ... } 앞 연산자 a > 0 이 거짓이라면 뒤 조건의 참/거짓 여부에 관계없이 거짓이므로 { }안의 연산을 하지 않는다. AND 연산자와 피연산자가 여러 개인 경우를 살펴보자. ex) result = value1 && value2 && value3; AND 연산자 && 는 아래와 같은 순서로 동작한다. 1. 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가한다. 2. 각 피연산자는 불린형으로 변환된다. 변환 후 값이 false이면 평가를 멈추고 해당 피연산자의 변환 전 원래 값을 반환한다. 3. 피연산자 모두가 평가되는 경우(모든 피연산자가 true로 평가되는 경우)엔 마지막 피연산자가 반환된다. ex1)ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ ( 1 && 2 && null && 3 ); // null ex2)ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ ( 1 && 2 && 3 ); // 마지막 값, 3 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ || (or) - 조건이 하나라도 true이면 true || 연산자의 경우 먼저 앞에 나온(피