연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리 , 타입 등을 수행해 하나의 값
을 만들어 낸다.
// 산술 연산자
5 * 4 // -> 20
// 문자열 연결 연산자
'My name is ' + 'Lee' // -> 'My name is Lee'
// 할당 연산자
color = 'red' // -> 'red'
// 비교 연산자
3 > 5 // -> false
// 논리 연산자
true && false // -> false
// 타입 연산자 (문자열 반환)
typeof 'Hi' // -> string
+ - * / %
++ -- + -
문자열
이면 문자열 연결 연산자로 동작값으로 평가되는 표현식인 문으로서 할당된 값으로 평가
동등/ 일치 비교 연산자
==
: 동등 비교 연산자 -> 암묵적 타입 변환을 통해 타입을 일치시킨후 비교===
: 일치 비교 연산자 -> 타입과 값이 모두 같아야 true를 반환, isNaN()
console.log( 0 === -0) //true
Object.is(0, -0) //false
가장 정확한 비교는 Object.is()
대소 관계 비교 연산자
: > < >= <=
조건식 ? 조건식이
true
일때 반환 값 : 조건식이false
일때 반환 값
삼항조건 연산자 표현식은값
으로 평가할 수 있는 표현식인 문이다.
var x = 10;
var result = x % 2 ? '홀수' : '짝수";
console.log(result) //짝수
논리 연산자
쉼표 연산자
let x,y,z;
x = 1, y = 2, z = 3 //3
그룹 연산자
typeof '' // -> "string"
typeof 1 // -> "number"
typeof NaN // -> "number"
typeof true // -> "boolean"
typeof undefined // -> "undefined"
typeof Symbol() // -> "symbol"
typeof null // -> "object"
typeof [] // -> "object"
typeof {} // -> "object"
typeof new Date() // -> "object"
typeof /test/gi // -> "object"
typeof function () {} // -> "function"
값이 null인것을 확인할때는 일치 연산자 사용
var foo = null;
typeof foo === null; // -> false
foo === null; // -> true
2 ** 2; // -> 4
2 ** 2.5; // -> 5.65685424949238
2 ** 0; // -> 1
2 ** -2; // -> 0.25
Math.pow(2, 2); // -> 4
Math.pow(2, 2.5); // -> 5.65685424949238
Math.pow(2, 0); // -> 1
Math.pow(2, -2); // -> 0.25
// 지수 연산자의 결합 순서는 우항에서 좌항이다. 즉, 우결합성을 갖는다.
2 ** (3 ** 2); // -> 512
Math.pow(2, Math.pow(3, 2)); // -> 512