Run with coding

Javascript 연산자 모음 : ! !! ? ?? << >> && || 본문

Javascript | TypeScript

Javascript 연산자 모음 : ! !! ? ?? << >> && ||

퀸리사 2022. 10. 27. 15:34

 

! , !! = 부정 연산자


! (NOT) : 피연산자를 boolean형(true / false)으로 변환한다.

true 면 false 로, false 면 true로 값을 반대로 변환한다. 

 

example

!true // false

!false // true

!null // true (null은 false이기 때문에 true로 반환된다)

 

!! : 값을 boolean형으로 변환할 수 있다.

 

첫번째 ! 는 피연산자로 받은 값을 boolean형으로 변환한 후 이 값의 역을 반환하고,

두번째 ! 는 첫번째 ! 연산자가 반환한 값의 역을 반환한다.

(처음엔 이게 도대체 무슨 말인가 싶었다 ^^;;)

 

example

!! "string" // true

! : 첫번째 ! 연산자는 "string"을 boolean형으로 변환한 후 (true겠죠?) 이 값의 역을 반환 (false를 최종 반환하겠군요!)

! : 두번째 ! 연산자는 첫번째 연산자가 반환한 값(false를 반환했었죠?)의 역을 반환(true를 최종 반환하겠군요!)

즉, "string"이 true라는 건 우리 모두 알고 있지만 컴퓨터가 "string"이 true라는 값을 반환할 수 있도록 해주는 연산자입니다!

 

 

 

? = 옵셔널 체이닝


? : 객체의 속성이 없는 경우, typeError가 발생하지 않고 undefined가 반환된다.

 

example

const object = { a: 'lalalala' }

object.a.length // 8

object.b.length // Uncaught TypeError: Cannot read properties of undefined (reading 'length')

obj.b?.length // undefined

즉, ? 를 사용한다는 것은 난 이게 있을 지 없을 지 몰라~ 라는 것을 컴퓨터에게 미리 알려주는 것이라고 생각하시면 됩니다!

미리 알려줬기 때문에 에러를 내뱉지 않고 undefined를 내뱉는 것이지요!

 

 

 

?? = NULL 병합 연산자


?? :  앞에 오는 값이 null 또는 undefined이라면 뒤에 오는 값을, 아니면 null 또는 undefined를 반환한다.

 

example

null ?? true // true

undefined ?? console.log('haha') // haha

 

const u = 10
u ?? console.log('u는 null or undefined') // 10

 

 

 

<< , >> = 비트 이동 연산자


<< : 왼쪽으로 비트를 밀어내는 연산자

 

example

8 << 3 // 1000(8) > 왼쪽으로 세 번 밀림 > 1000000(64) > " 64 "

 

>> : 오른쪽으로 비트를 밀어내는 연산자

 

example

32 >> 2 // 100000(32) > 오른쪽으로 두 번 밀림 > 1000(8) > " 8 "

 

 

&& = 논리곱 연산자


&& : 모든 조건이 참이여야 true

 

example

true && true // true

true && false // false

false && true // false

false && false // false

 

 

 

|| = 논리합 연산자


|| : 둘 중 하나만 참이면 true

 

example

ture || true // true

true || false // true

false || true // true

false || false // false