[백엔드 지식 기초 다지기 with Node.js] 동치 연산자, 콘솔로그 백틱

공학도 Lee·2023년 2월 23일
0
post-custom-banner

주요 내용


  1. 동치 연산자
  2. 콘손로그 백틱

1. 동치 연산자


다른 언어로 개발할 때에는 없었던 표현법이라 기록해두고자 한다.

JS에는 두 가지 타입의 동치 연산자가 존재한다.

  • 엄격한 동치 연산자 (Strict equality operator): ===
  • 느슨한 동치 연산자 (Loose equality operator): ==

엄격한 동치 연산자는 대상들의 데이터 타입까지 비교하며, 기존의 다른 언어를 활용할 때에 ==으로 많이 사용했던 것이다.
느슨한 동치 연산자의 경우는 타입 비교 없이 만 비교하는 연산자이다.

예시로 모질라 사이트에 올라와 있는 것들을 가져왔다.

예시: 엄격한 동치 연산자 (===)

const num = 0;
const obj = new String("0");
const str = "0";

console.log(num === num); // true
console.log(obj === obj); // true
console.log(str === str); // true

console.log(num === obj); // false
console.log(num === str); // false
console.log(obj === str); // false
console.log(null === undefined); // false
console.log(obj === null); // false
console.log(obj === undefined); // false

사이트의 설명에 따르면 웬만한 것들은 모두 엄격하게 같은지 아닌지 비교한다고 한다.
다만, 예외로 재밌는 예시가 있는데 x=NaN일 때, console.log(x !== x) // true라는 점이다.

예시: 느슨한 동치 연산자 (==)

const num = 0;
const big = 0n; //BigInt
const str = "0";
const obj = new String("0");

console.log(num == str); // true
console.log(big == num); // true
console.log(str == big); // true

console.log(num == obj); // true
console.log(big == obj); // true
console.log(str == obj); // true

예시들의 변수 중 두 번째 것은 생소한 표현이라 찾아보니, BigInt라고 한다. 길이의 제약 없이 정수를 다룰 수 있게 해주는 숫자형이라고 하는데, 관련해서는 다음에 더 찾아볼 기회가 생기면 적어보려 한다.

비교하는 것들의 타입이 다를 경우 다음 규칙을 통해 변환한다고 한다.
1. Boolean -> Number
2. Number -> String
3. Number -> BigInt
4. String -> BigInt

왜 굳이 이런 기능을 넣어놨는지 아직은 잘 모르겠지만, 덕분에 오히려 예상치 못한 에러가 나는 경우가 있으니 다른 언어 생각해서 "==" 넣는 건 유의해야겠다.

2. 콘솔로그 백틱


console.log를 통해 문구를 출력할 때, 변수도 활용하는 경우가 많다.
항상, 변수에 "원하는 문구"를 +하는 형태로 출력해왔는데 문구가 더 길 경우 불편할 때가 있었다.

` 을 사용하면 두 경우를 역전해서 사용할 수 있는 방법이 있다.
이제는 문구를 " "로 감싸주는 것이 아닌, 변수를 ${ }로 감싸주는 형태로 사용하면 된다.
논문 쓸 때, latex에서 변수들은 $를 붙여줬던 것 같은데 흡사해 보인다.
velog를 쓸 때도 변수 앞뒤로 $를 붙이던데, 마크다운 방식인가 싶기도 하다.

(Ex: xx)

const blog = "diosamor";
const message = "hello";

console.log(`${blog} wants to say ${message}`);
console.log(blog + " wants to say " + message);
//diosamor wants to say hello

참고 문헌


동치 연산자

콘손로그 백틱

  • 인프런 수업
profile
이창민, Changmin Lee
post-custom-banner

0개의 댓글