TIL 14. JS (Operator)
📌 String concatenation
console.log('my' + ' cat'); console.log('1' + 2); console.log(`string literals: 1 + 2 = ${1 + 2}`);
이 경우 모두 string타입의 값으로 console창에 출력이 된다.
my cat, 12, string literals: 1 + 2 = 3으로 각각 출력된다.
📌 Numeric operators
console.log(1 + 1); // add 덧셈 console.log(1 - 1); // substract 뺄셈 console.log(1 / 1); // divide 나눗셈 console.log(1 * 1); // multiply 곱셈 console.log(5 % 2); // remainder 나머지 console.log(2 ** 3) // exponentiation 제곱
이 경우 모두 number 타입의 값으로 console창에 출력이 된다.
1, 0, 1, 1, 1, 8로 각각 출력된다.
📌 Increment and decrement operators
let counter = 2; const preIncrement = ++counter; // counter = counter + 1; // preIncrement = counter; // preIncrement = 3, counter = 3 ----------------------------------- const postIncrement = counter ++; // postIncrement = counter; // counter = counter + 1; // postIncrement = 3, counter = 4
주석으로 설명되어 있듯이 ++가 변수 앞에 붙어 있으면 먼저 counter라는 변수에 1을 더한 뒤, 선언하려고 preIncrement라는 변수에게 counter의 더한 값으로 선언한다.
반대로 ++가 변수의 뒤에 붙어 있으면 counter라는 변수는 먼저 새롭게 선언하려고 하는 변수에게 자신의 값으로 선언하고 그 뒤에 자신이 1을 더한다.
Decrement에서도 이와 같이 연산한다.
📌 Assignment operators
let x = 3; let y = 6; x += Y; // x = x + y x -= y; // x = x - y x *= y; // x = x * y x /= y; // x = x / y
📌 Comparison operators
console.log(10 < 6); console.log(10 <= 6); console.log(10 > 6); console.log(10 >= 6);
말 그대로 비교하는 연산자이다. 이에 대한 값은 boolean 타입의 값으로 출력된다.
📌 Lofical operators
☝🏻 || (or)
<const value1 = false; const value2 = 4 < 2; const value3 = true; console.log(`or: ${value1 || value2 || value3}`);
or은 조건에 해당되는 변수중 값이 하나라도 true이면 true의 값을 출력한다.
☝🏻 && (and)
<const value1 = false; const value2 = 4 < 2; const value3 = true; console.log(`or: ${value1 && value2 && value3}`);
and는 조건에 해당되는 변수 중에 하나라도 false이면 false를 출력한다.
☝🏻 ! (not)
<const value = true; console.log(!value);
not은 해당 변수의 값을 반대로 출력한다. 따라서 console에 출력되는 value의 값은 true에서 false로 바뀌게 된다.
📌 Equlaity
const stringFive = '5'; const numberFive = 5; ---- //loose quality, with type conversion console.log(stringFive == numberFive); --> true console.log(stringFive != numberFive); --> false ----- //strict equality, no type conversion console.log(stringFive === numberFive); --> false console.log(stringFive !== numberFive); --> true
==와 !=은 타입에 상관없이 값이 같으면 true, 아니면 false를 가진다.
반대로, ===와 !==은 타입도 같아야 true, 아니면 false를 가진다.
//object equality by reference const value1 = {key: 'value'}; const value2 = {key: 'value'}; const value3 = value1; console.log(value1 == value2); --> false console.log(value1 === value2); --> false console.log(value1 === value3); --> true
객체에서는 한번 더 생각해야할 부분이 있다. value1과 value2는 사실상 key와 value값이 같지만, 그 전에 보이지는 않아도 각 reference가 다르다. 그렇기 때문에 value1와 value2는 ==이든 ===이든 false가 된다.
하지만 value3은 value1이다 라고 선언했기 때문에 두 변수는 같은 reference를 갖는다.
Author And Source
이 문제에 관하여(TIL 14. JS (Operator)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@syeon02/TIL-12.-JS-Operator저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)