실무에서도 많이쓰이는 개꿀 연산자입니다.
var member;
member = (member)||'default';
일단 한가지 먼저 말씀드려야 겟네요
자바스크립트에선 (값) 괄호 안에 값이 null, undefined등일 경우에도 false로 사용 가능합니다.
그럼 위에서 member를 초기화 하지도 않고 아무 값도 넣지않았습니다.
그렇기에 (member) false가 되겟죠
그리고 바로 옆 || 해당연산자는 조건1 || 값 조건1이 true일경우 아무 작업도 하지 않지만 false일경우
|| 뒤에있는 값을 호출하라 라는 뜻입니다.
그렇기에 (member)||'default' -> 'default' 로 변해버린것이지요. 그래서 member 에는 default가 들어가게 됩니다.
또 이와 비슷한 연산자가 있습니다
var member;
member = (member)?'yes true':'what? false';
해당 연산자도 위와 비슷합니다.
(member)? 여기서의 ?는 변수가 true야? 라는 느낌으로 이해하시면됩니다.
true일시 바로 뒤에 yes true가 호출되며 false일시 : 뒤에있는 what? false가 호출됩니다.
해당 연산자들은 실무에서도 데이터 기본값 설정 또는 초기화 용으로 많이쓰이며
특히 자바스크립트 객체의 경우 해당 속성이 없을경우 오류가 생기기 떄문에 아주 자주 애용되는 필수 연산자 이므로 꼭 기억하셔야 합니다.
객체의 경우에 이런느낌으로 응용할 수도 있겟네요.
var obj = {};
obj = (obj || {propertie:"default"}) // obj = default
obj = (obj || {propertie:""}).propertie // obj = ''
'개발 > Javascript' 카테고리의 다른 글
배열 마지막 요소(값) 깔끔하게 추출 하는 방법 (0) | 2023.01.05 |
---|---|
[kmhdev] promise ? 비동기함수 (0) | 2020.09.09 |