표현식 Expressions
1; // 숫자 리터럴 표현식
1+1; // 연산자 표현식
call(); // 함수 호출 표현식
let b // 선언문 : 선언한거 자체가 값으로 평가 될 수 없음 표현식❌
b = 2; //할당문, 할당 표현식인문 ⭕
리터럴(Literal)
문(Statement)
산술 연산자(arithmetic)
console.log(5 + 2);// +(더하기)
console.log(5 - 2);// -(빼기)
console.log(5 * 2);// *(곱하기)
console.log(5 / 2);// /(나누기)
console.log(5 % 2);// %(나머지 값)
console.log(5 ** 2); // es7 **(거듭제곱)
console.log(Math.pow(5, 2)); // (거듭제곱 다른 방법)
단항 연산자(unary)
let a = 5;
a = -a; // -1* -5
a = +a; // +(-5)
console.log(a); // -5
let boolean = true;
console.log(boolean); // ture
console.log(!boolean); // false
console.log(!!boolean); // true
console.log(!!1); // ! 한번 쓰면 부정연산자
// !! 두번 쓰면 값을 boolean 타입으로 변환함
console.log(+false); // 0
console.log(+null); // 0
console.log(+''); // 0
console.log(+true); // 1
console.log(+'text'); // NaN 문자열을 숫자로 변환할 수 없음
console.log(+undefined); // NaN
할당 연산자(assignment)
let a = 1;
a += 2; // a = a + 2; 축약버전
a -= 2; // a = a - 2;
a *= 2; // a = a * 2;
a /= 2; // a = a + 2;
a %= 2; // a = a % 2;
a **= 2; // a = a ** 2;
증감 연산자(Invrement & Decrement)
let a = 0;
a++; // a = a + 1;
a--; // a = a - 1;
// 주의사항!✨
// a++ 필요한 연산을 하고, 그 뒤 값을 증가시킴
// ++a 값을 먼저 증가하고, 필요한 연산을 함
a = 0;
console.log(a++); // 0을 출력하고 1이 증가
console.log(a); // 1
let b = a++;
console.log(b); // 1
console.log(a); // 2
비교 연산자(Relational)
console.log(2 > 3); // false
console.log(2 < 3); // true
console.log(3 < 2); // false
console.log(3 > 2); // true
console.log(3 <= 2); // false
console.log(3 <= 3); // true
console.log(3 >= 3); // true
console.log(3 >= 2); // true
연산자 우선순위
let a = 2;
let b = 3;
let result = ((a + b) * 4) / 5;
console.log(result); // 4
result = a++ + b * 4;
console.log(result); // 12
동등 비교 연산자(Equality)
// == 값이 같음
// != 값이 다름
// === 값과 타입이 둘다 같음
// !== 값과 타입이 다름
console.log(2 == 2); // true
console.log(2 != 2); // false
console.log(2 == '2'); // true
console.log(2 === '2'); // false✨
const obj1 = {
name: 'js',
};
const obj2 = {
name: 'js',
};
console.log(obj1 == obj2); // 서로 다른 메모리 주소를 가르키고 있어서 false
console.log(obj1.name == obj2.name); // true