[javascript] 연산자
[JavaScript] 연산자
삼항 연산자
- 3개의 피연산자, 조건 연산자 (if문과 비교)
const val = (조건) ? 참일때 : 거짓일때
const val = (조건) ? ((조건) ? 참일때 : 거짓일때) : 거짓일때 //-> 중첩도 사용가능
if (조건) {
val2 = 참일때;
} else {
val2 = 거짓일때;
}
const age = 20;
const isAdult = age >= 20 ? '성인' : '미성년자';
isAdult; //-> '성인'
그렇다면 삼항 연산자와 if문의 차이는?
- 삼항연산자 : (값, 식, 문) 중 (값, 식) 만 들어올 수 있다 -> 조건과 참, 거짓을 작성할 때
- if문 : for문, while문 등등 함께 사용이 가능함
typeof 연산자
- primitive : string, number, bigint, boolean, undefined, symbol, null
const str = 'string';
const func = function() {};
typeof str; //-> 'string'
typeof 123; //-> 'number'
typeof 1n; //-> 'bigint'
typeof true; //-> 'boolean'
typeof Symbol(); //-> 'symbol'
typeof undefined; //-> 'undefined'
typeof func; //-> 'function'
typeof []; //-> 'object'
typeof {}; //-> 'object'
typeof null; //-> 'object'
typeof new Boolean(true); //-> 'object'
// 참조객체로 만든 것으로 원시값을 만들어내도 참조객체로 나옴
- null : 원시값인데 참조값처럼 type이 ‘object’가 나옴
- null -> 객체로 인식 -> 자바스크립트 초기 설계 오류 !
instanceof 연산자
- 객체의 인스턴스를 확인하기 좋음
- 즉 객체의 인스턴스가 어떤 생성자로 생성된 것인지 파악 가능
const obj = {};
const arr = [];
const func = function() {};
obj instanceof Object; //-> true
arr instanceof Array; //-> true
func instanceof Function; //-> true
undefined instanceof Object; //-> false
null instanceof Object; //-> false -> 원시값임을 증명함!
obj instanceof Object; //-> true
arr instanceof Object; //-> true
func instanceof Object; //-> true
// 프로토타입 최상위인 객체로 비교를 하면 true로 나옴 !
기타 연산자
- void 연사자 -> 표현식
void 1; //-> undefined
void 10; //-> undefined
function voidFunc() {
return undefined; // 이런 느낌 , undefined를 일부러 주기위해 사용됨
};
<a href="javascript:void(0)" id="loginlink">login</a>
- 비어있는 링크를 걸어야 할 때 사용함
- 전에는 자주 사용했지만 요즘엔 사용 잘 안함
배열
- 배열은 객체다.
- 배열의 인덱스는 딕셔너리하다
const arr = [1, 2, 3];
arr[0];
arr[1];
arr[2];
arr[3] = 4;
arr.push(5);
arr[9] = 10;
arr.prop = [6, 7];
arr; //-> [1, 2, 3, 4, 5, <4 empty items>, 10, prop : [6, 7]]
//-> [1, 2, 3, 4, 5, empty × 4, 10, prop: Array(2)] 콘솔창에 찍어본 모습
- 배열의 길이
const arr = [1, 2, 3];
arr[9] = undefined;
arr.length = 20;
arr.length = 0;
arr; //-> [] 배열을 초기화 할 때 사용함!
유사 배열 객체
- 판별 :
Array.isArray - 유사 배열 객체에서 배열의 메소드를 사용하고싶다면 ? ->
Array.from
function func() {
console.log(arguments); //-> ['0' : 1, '1':2, ...]
}
func(1, 2, 3, 4, 5, 6)
// arguments 콘솔창 : [1, 2, 3, 4, 5, 6, callee: ƒ, Symbol(Symbol.iterator): ƒ]
// 배열처럼 생겼지만 아님, 프로토타입 메서드를 보면 배열 메소드를 가지고 있는게 없음