//1. 리터럴과 프로퍼티
let user = new Object(); //객체 생성자 문법
let user = {}; //객체 리터럴 문법: 중괄호를 이용해 객체를 선언하는 것
let user ={//중괄호 안에는 키:값 쌍으로 구성된 프로퍼티가 들어감
name: "John",//키(이름,식별자),값
age: 30,
"like birds": true, //복수 단어는 따옴표로
};
//프로퍼티 값 얻기
alert(user.name);//John
alert(user.age);//30
//프로퍼티 값에는 모든 자료형 가능
//프로퍼티 추가
user.inAdmin=true;
//프로퍼티 삭제
delete user.age;
//상수 객체 수정
const user = {
name: "John"
};
//const로 선언된 객체는 수정될 수 있음
user.name ="Pete";
alert(user.name);
//2. 대괄호 표기법
let user ={};
user["likes birds"]=true;
alert(user["likes birds"]);//true
delete user(["likes birds"]);
//대괄호 표기법을 사용하면 변수를 키로 사용하거나 모든 표현식을 사용할 수 있음
let key ="like birds";
user[key]=true;
//사용자 입력값에 따라 ..
let user = {
name:"John",
age:30
};
let key = prompt("사용자의 어떤 정보를 얻고 싶으신가요?","name");
alert(user[key]);//user.key는 불가
//계산된 프로퍼티: 프로퍼티 키가 대괄호로 둘러싸여 있는 경우
let fruit = prompt("어떤 과일을 구매하시겠습니까?","apple");
let bag={
[fruit]:5,//변수 fruit에서 프로퍼티 이름을 동적으로 받아옴
};
alert(bag.apple);
//다른 방식
let fruit = prompt("어떤 과일을 구매하시겠습니까?","apple");
let bag ={};
bag[fruit]=5;
let fruit = 'apple';
let bag ={
[fruit + 'Computers']:5;//bag.appleComputers =5
}
//3.단축 프로퍼티
function makeUser(name, age){
return{//프로퍼티의 키와 값이 변수와 동일->단축구문
name:name,
age:age,
};
}
let user = makeUser("John",30);
alert(user.name);
//단축구문 - name:name 대신 name만 (섞어 쓰는 것도 가능)
function makeUser(name,age){
return{
name,
age,
};
}
//4.프로퍼티 이름의 제약사항
let obj = {//예약어를 키로 사용해도 됨
for:1,
let:2,
return:3
};
alert(obj.for+obj.let+obj.return);//6
//__proto__제약
let obj = {};
obj.__proto__=5;
alert(obj.__proto__);//5할당 무시
//in 연산자로 프로퍼티 존재 여부 확인하기
"key" in Object
let user = {name:"John",age:30};
alert("age" in user);//true
alert("lala" in user);//false
//변수에 저장 된 값으로 프로퍼티 존재 확인
let user = {age:30};
let key = "age";
alert(key in user);
//undefinded - 프로퍼티 존재 여부 확인
let user = {};
alert(user.noSuchProperty===undefined);
//왜 in 을 쓰나?
//프로퍼티가 존재하는 데 값이 undefined 인 예시
let obj = {
test:undefined
};
alert(obj.test);
//5. for in 반복문
for (key in object){
// 모든 프로퍼티 키를 순회
}
let user ={name:"jjoh",age:30,isAdmin:true};
for(let key in user){
alert(key);//키
alert(user[key]);//키에 해당하는 값
}
//객체 정렬방식
//정수 프로퍼티는 자동으로 결정, 그외의 프로퍼티는 객체에 추가한 순서대로 정렬
let codes ={
"49":"독일",
"41":"스위스",
"44":"영국",
"1":"미국",
};
for(let code in codes){
alert(code);//1,41,44,49
}
//과제
//1
let user={
name:"John",
surname:"Smith",
};
user.name="Pete";
delete user.name;
for(let key in user){
alert(user[key]);
}
//2.
let schedule = {};
function isEmpty(obj){
for(let key in obj){
return false;
}
return true;
}
alert(isEmpty(schedule));
schedule["8:30"]="get up";
alert(isEmpty(schedule));
//3
let salaries ={
John:100,
Ann:160,
Pete:130
};
let sum = salaries.John+salaries.Ann+salaries.Pete;
alert(sum);
let sum =0;
for(let key in salaries){
sum+=salaries[key];
}
alert(sum);
//4
let menu = {
width:200,
height:300,
title:"My menu"
};
function multi(obj){
for(let key in obj){
if(typeof obj[key]=="number"){
obj[key]+=obj[key];
}
}
}
multi(menu);
alert(menu.title);
'JavaScript' 카테고리의 다른 글
[자바스크립트] #3 공부 기록 - 심볼형 (0) | 2022.08.16 |
---|---|
[자바스크립트] #2 공부 기록 - 메서드와 this (0) | 2022.08.15 |
[JavaScript] 자바스크립트 - 배열 내장 함수 (unshift, concat, join) (0) | 2021.03.11 |
[JavaScript] 자바스크립트 - 배열 내장 함수( splice, slice, shift, pop) (0) | 2021.03.10 |
[JavaScript] 자바스크립트 - 배열 내장 함수 ( findIndex, find, filter ) (0) | 2021.03.09 |