- 동치 연산자
- 콘손로그 백틱
다른 언어로 개발할 때에는 없었던 표현법이라 기록해두고자 한다.
JS에는 두 가지 타입의 동치 연산자가 존재한다.
===
==
엄격한 동치 연산자는 대상들의 데이터 타입과 값까지 비교하며, 기존의 다른 언어를 활용할 때에 ==
으로 많이 사용했던 것이다.
느슨한 동치 연산자의 경우는 타입 비교 없이 값만 비교하는 연산자이다.
예시로 모질라 사이트에 올라와 있는 것들을 가져왔다.
예시: 엄격한 동치 연산자 (===)
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
왜 굳이 이런 기능을 넣어놨는지 아직은 잘 모르겠지만, 덕분에 오히려 예상치 못한 에러가 나는 경우가 있으니 다른 언어 생각해서 "==" 넣는 건 유의해야겠다.
console.log
를 통해 문구를 출력할 때, 변수도 활용하는 경우가 많다.
항상, 변수에 "원하는 문구"
를 +하는 형태로 출력해왔는데 문구가 더 길 경우 불편할 때가 있었다.
` 을 사용하면 두 경우를 역전해서 사용할 수 있는 방법이 있다.
이제는 문구를 " "로 감싸주는 것이 아닌, 변수를 ${ }로 감싸주는 형태로 사용하면 된다.
논문 쓸 때, latex에서 변수들은 $를 붙여줬던 것 같은데 흡사해 보인다.
velog를 쓸 때도 변수 앞뒤로 $를 붙이던데, 마크다운 방식인가 싶기도 하다.
(Ex: )
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