반응형
단항산술연산자 증가/감소(++/--)
피연산자의 값을 변경하는 부수효과가 있다.
x++; // x = x + 1; 와 같다
1 + true // 2
숫자와 다른값을 산술할때는 암묵적 타입 변환 또는 타입 강제 변환 이 일어날 수 있다.
할당 연산자
x+=5 //x = x+5
x *= 5 //x = x*5
let str = 'i am...'
str += 'rumi' //str = str + 'rumi'
//i am...rumi
동등/일치 비교 연산자
== 동등 비교 (값이 같음)
=== 일치 비교 (값과 타입이 같음)
!= 부동등비교 (값이 다름)
!== 불일치 비교 (값과 타입이 다름)
5 == '5' // true
NaN === NaN // false
- 가급적 === 를 쓰자!!
0 == -0 //true 이런..
0 === -0 //true..
JS에는 양의 0 음의 0이 있는데 이들을 비교하면 true를 반환한다.
삼항 조건식
조건 ? true면 이거 리턴 : false면 이거 리턴
삼항조건식은 값처럼 사용할수있지만, if else문은 값처럼 사용할 수 없다. if else는 조건문이다. 삼항조건식은 값으로 평가할수있는 표현식이다. 조건에 따라 어떤 값을 결정할때는 삼항조건식을 쓰는게 낫다. 하지만 조건이 여러개라면 if else문은 피한다.(삼항조건식 이어붙이면 가독성이 안좋으니까!)
|| 논리합 : 하나라도 true면 true
&& 논리곱 : 둘다 true여야 true
! 논리부정 : !true 는 false (논리부정은 언제나 true false만을 반환한다)
typeof 연산자의 괴랄한점
typeof NaN // number
typeof null // object
typeof [] // object
typeof new Date() // object
typeof tjsdjsgkswjrdjqtdma // undefiend 식별자를 선언한적이없는데 Ref에러가 아니고 언디파인드..
거듭제곱
이항연산자 중에서 우선순위가 가장 높음
2 ** 2 // 4
Math.pow(2,2) // 4
(-2) ** 2 // 4
그 외 연산자
?. 옵셔널 체이닝
data?.contents?.title //data가 있는지? 있으면 contents가 있는지? 있으면 title 반환
?? null 병합 연산자
let score = 0;
score || 100; // 0을 false값으로 인식해서 100출력
score ?? 100; // score가 0이므로 0출력
0이 할당될 가능성이 있으면 || 쓰지말고 ??를 써라!
delete 프로퍼티 삭제
프로퍼티를..삭제한다..
const friends = {
bestFriend: 'som',
boyFriend: 'ray',
fakeFriend: 'kim',
};
delete friends.fakeFriend;
console.log(friends.fakeFriend); // undefiend
반응형
'[STUDY] 스터디 > Deep Dive JS' 카테고리의 다른 글
js 함수 리터럴 / 화살표함수 / 콜백함수 / 고차함수 정의 (0) | 2022.11.24 |
---|---|
js 객체 리터럴 / 객체값 가져오기 / 얕은복사 깊은복사 비교 (0) | 2022.11.22 |
js 타입변환 / '0'은 false지만 truthy하다 / '0'은 왜 true로 평가되는가 (0) | 2022.11.22 |
js switch case 조건문 / 반복문의 continue, break (0) | 2022.11.18 |
변수의 선언과 호이스팅 (0) | 2022.11.14 |