Javascript/연산자 3

spread 와 rest-spread 연산자 (feat. 비구조화할당)

1. spread 연산자 객체에서 이용하기 const slime = { name: '슬라임' }; const cuteSlime = { ...slime, attribute: 'cute' }; const purpleCuteSlime = { ...cuteSlime, color: 'purple' }; const greenCuteSlime = { ...purpleCuteSlime, color: 'green' }; console.log(slime); console.log(cuteSlime); console.log(purpleCuteSlime); console.log(greenCuteSlime); //출력값 { name: '슬라임' } { name: '슬라임', attribute: 'cute' } { name: '슬..

단축 평가 논리 계산법 (short-circuit evaluation) --> react에서 조건부 랜더링에 사용됨

&&로 값을 비교하기 const dog = { name: '멍멍이' }; function getName(animal){ return animal && animal.name; } const name = getName(dog); console.log(name); //출력값 멍멍이 여기서보면 궁금증이 생깁니다. 분명 형식은 Boolean으로 구분하는것같지만 출력값은 다르게 나오기 때문이죠. 이 특성을 알기 위해 다른 예시를 보겠습니다. console.log(true && 'hello'); console.log(false && 'hello'); console.log('hello' && 'bye' && 'nice'); //출력값 hello false nice &&특성을 보면 만약 비교값중에 무조건 falsy값이 ..

== 와 === 의 차이점

==의 특징 타입을 비교하지 않는다. const a = 1; const b = '1'; const equals = a==b; console.log(equals) /*결과값*/ true const a = flase; const b = 0; const equals = a==b; console.log(equals) /*결과값*/ true const a = true; const b = 1; const equals = a==b; console.log(equals) /*결과값*/ true const a = null; const b = undefined; const equals = a==b; console.log(equals) /*결과값*/ true 이와같이 값이 다른데 타입을 검사하지 않기 때문에 결과가 true로..