모던JS딥다이브 공부 정리용 글입니다.
- 산술 연산자
5 * 4 // 20- 문자열 연결 연산자
'My ' + 'precious' // My precious- 할당 연산자
a = 'b'- 비교 연산자
3 < 5 //true- 논리 연산자
&& ||- 타입 연산자
typeof "골룸" // string
x=y
x += y
x -= y
x *= y
x /= y
x %= y
---------
var a, b, c;
a = b = c = 0;
//으론쪽에서 왼쪽으로 진행되면서 할당.
동등 == / 부동등 !=
일치 === / 불일치 !==
동등은 암묵적 타입변환을 통해 타입을 일치시킨 후 같은 값인지 비교하기 때문에 지양하라.
NaN의 경우 유일하게 자기 자신과 일치하지 않는 값이다.
따라서 isNaN()을 사용하라.
>
<
<=
>=
1 === 1 ? "맞음" : "틀림"
// 논리합(||) 연산자
true || true // true
true || false // true
false || true // true
false || false // false
// 논리곱(&&) 연산자
true && true // true
true && false // false
false && true // false
false && false // false
// 논리 부정(!) 연산자
!true // false
!false // true
// 단축 평가
'Cat' && 'Dog' // “Dog”
'Cat' || 'Dog' // 'Cat'
var x, y, z;
x=1, y=2, z=3
console.log(x,y,z) // 1 2 3
10 * 2 + 3// 23
10 * (2 + 3) // 50
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은 객체로 반환되는데 이것은 초기 버그이며 큰일날까봐 수정하고 있지 않음.
'==='을 사용해서 판단해라.
2 ** 3 // 2의 3승
Math.pow(2, 2) // 2의 2승
//음수의 경우 괄호로 묶는다.
(-5) ** 2 // 25
?. 옵셔널 체이닝
?? null 병합연산자
delete 프로퍼티 삭제
new 생성자 함수 호출하여 인스턴스 생성
instanceof 좌변의 객체가 우변의 생성자 함수와 연결된 인스턴스인지 판별
in 프로퍼티 존재 확인.