728x90
(원시형의 예시)
// Infiity = 무한대
let x = Infinity; // 무한대
let y = (1/0); // 무한대
alert("abc"/2); //NaN
alert("def"/2+2); //NaN
//bigint 표현 방법
// 끝에 'n'을 붙인다.
const bigInt = 1234567890123456789012345678901234567890n;
객체object
객체형은 원시형과 달리 다양한 데이터를 담을 수 있다.
let user = new Object(); // '객체 생성자' 문법
let user = {}; // '객체 리터럴' 문법
let user = { // 객체
name: "John", // 키: "name", 값: "John"
age: 30, // 키: "age", 값: 30
"likes birds": true // 복수의 단어는 따옴표로 묶어서 표기
};
let user = {};
// set
user["likes birds"] = true;
// get
alert(user["likes birds"]); // true
// delete
delete user["likes birds"];
단축 프로퍼티
function makeUser(name, age) {
return {
name: name,
age: age,
// ...등등
};
}
let user = makeUser("John", 30);
alert(user.name); // John
"in" 연산자로 존재 여부 확인
let user = {};
alert( user.noSuchProperty === undefined ); // true는 '프로퍼티가 존재하지 않음'을 의미
let user = { name: "John", age: 30 };
alert( "age" in user ); // user.age가 존재하므로 true가 출력
alert( "blabla" in user ); // user.blabla는 존재하지 않기 때문에 false가 출력
대부분의 경우, 일치 연산자를 사용해서 프로퍼티 존재 여부를 알아내는 방법("=== undefined")은 꽤 잘 동작하긴 한다.
그거나 가끔 이 방법이 실패할 때도 있다.
이럴 때 in을 사용하면 프로퍼티 존재 여부를 확실히 판별해준다.
let obj = {
test: undefined
};
alert( obj.test ); // 값이 `undefined`이므로, 얼럿 창엔 undefined가 출력. 그러나 프로퍼티 test는 존재하게 됨.
alert( "test" in obj ); // `in`을 사용하면 프로퍼티 유무를 제대로 확인할 수 있다(true가 출력됨).
"for in"
객체 정렬 방식으로 key 가 정수일 경우에는 asc 순으로 정렬되어 출력된다. *****
키가 정수가 아니라면 작성 순으로 나열된다
객체는 몇 가지 특수한 기능을 가진 연관 배열(associative array)이다.
객체는 프로퍼티(키-값 쌍)를 저장한다.
- 프로퍼티 키는 문자열이나 심볼이어야 한다. 보통은 문자열이다.
- 값은 어떤 자료형도 가능하다.
아래와 같은 방법을 사용하면 프로퍼티에 접근할 수 있다.
- 점 표기법: obj.property
- 대괄호 표기법 obj["property"]. 대괄호 표기법을 사용하면 obj[varWithKey]같이 변수에서 키를 가져올 수 있다.
객체엔 다음과 같은 추가 연산자를 사용할 수 있다.
- 프로퍼티를 삭제하고 싶을 때: delete obj.prop
- 해당 key를 가진 프로퍼티가 객체 내에 있는지 확인하고자 할 때: "key" in obj
- 프로퍼티를 나열할 때: for (let key in obj)
지금까진 '순수 객체(plain object)'라 불리는 일반 객체에 대해 학습했다.
자바스크립트에는 일반 객체 이외에도 다양한 종류의 객체가 있다.
- Array – 정렬된 데이터 컬렉션을 저장할 때 쓰임
- Date – 날짜와 시간 정보를 저장할 때 쓰임
- Error – 에러 정보를 저장할 때 쓰임
- 기타 등등
728x90
'Web > JavaScript' 카테고리의 다른 글
[Function Declaration] 함수표현식, 콜백함수 (0) | 2023.10.25 |
---|---|
[기본] type of 및 자료형 요약정리 (0) | 2023.10.23 |
브라우저 이벤트 정리 3. drag and drop (0) | 2023.10.22 |
브라우저 이벤트정리 2.Moving the mouse (0) | 2023.10.22 |
브라우저 이벤트 정리 1. 마우스이벤트 (0) | 2023.10.22 |