• 회원가입
  • 로그인
  • 구글아이디로 로그인

[JS-엘리] JS 7강 - 오브젝트 넌 뭐니? | (JavaScript ES6)

751  

동영상 수강 전 본문 내용 스캔.

동영상 수강 후 본문 내용 스캔. 

 

목차 

 

00:39 mdn object

01:00 1. Literals and properties

05:20 2. Computed properties

08:58 3. Property value shorthand

10:07 4. Constructor function

11:56 5. in operator 

12:47 6. for..in vs. for..of

15:02 7. Fun cloning 

 

 

00:39

mdn object

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object

 

01:00

1. Literals and properties

 

// Objects

// one of the JavaScript's data types.

// a collection of related data and/or functionality.

// Nearly all objects in JavaScript are instances of Object

// object = { key : value };



// 1. Literals and properties


// 선언 방법 2가지

const obj1 = {}; // 'object literal' syntax

const obj2 = new Object(); // 'object constructor' syntax


/*

// 비효울적인 코드

const name = 'ellie';

const age = 4;

print(name, age);

function print(name, age) {

    console.log(name);

    console.log(age);

}

*/


// 효율적인 코드

function print(person) {

    console.log(person.name);

    console.log(person.age);

}

const ellie = { name: 'ellie', age: 4 };

print(ellie);


// with JavaScript magic (dynamically typed language)

// can add/delete properties later


// 추가 (can add properties later)

ellie.hasJob = true;

console.log(ellie.hasJob);


// 삭제 (can delete properties later)

delete ellie.hasJob;

console.log(ellie.hasJob);


결과보기

 

05:20

2. Computed properties

 

// 2. Computed properties

// Key should be always string

console.log(ellie.name); // 코딩 순간 key가 정해져 있을 때

console.log(ellie['name']); // 코딩 순간 key가 정해져 있지 않을 때

ellie['hasJob'] = true;

console.log(ellie.hasjob); // undefined (※ 엘리 님 영상에선 true 찍힘.)

console.log(ellie['hasJob']); // true


function printValue(obj, key) {

    // console.log(obj.key); // X

    console.log(obj[key]); // O

}


printValue(ellie, 'name');

printValue(ellie, 'age');

 

결과보기

 

08:58

3. Property value shorthand

Object 생성 함수 만들기 : Object 생성 시 key 반복적으로 적는 번거로움 해결 가능. 

 

// 3. Property value shorthand

const person1 = { name: 'bob', age: 2 };

const person2 = { name: 'steve', age: 3 };

const person3 = { name: 'dave', age: 4 };

const person4 = makePerson('ellie', 30);

console.log(person4);

function makePerson(name, age) {

    return { 

       // key와 value 동일 시, 축약 가능.    

        name, // name:  name,

        age, // age: age,

    }

} 

 

결과보기

PS. 위 파란색 부분은 아래 constructor function 함수 이용해 간단히 표현 가능.

 

10:07

4. Constructor function

 

// 4. Constructor function

// Object 생성 함수는 5강에서 설명한 class처럼 Template 역할.

// 위 파란색 코드를 더 간결하게 표현하기.

const person4 = new Person('ellie', 30);

console.log(person4);

function Person(name, age) {

    // this = {};  // 생략 가능. 주로 생략.

    this.name = name;

    this.age = age;    

    // return this; // 생략 가능. 주로 생략.

}

 

결과보기

 

11:56 

5. in operator

Object 안에 key가 존재하는지 여부 체크

 

// 5. in operator : property existence check (key in obj)

console.log('name' in ellie); // true

console.log('age' in ellie); // true

console.log('random' in ellie); // false

console.log(ellie.random); // undefined

 

결과보기

 

12:47

6. for..in vs. for..of

Object의 key・value 출력

 

// 6. for..in vs. for..of


// for (key in obj)

for (let key in ellie) {

    console.log(key);

}


// for (value of iterable)

const array = [1, 2, 4, 5];

// 무식한 방법

for(let i = 0; i < array.length; i++) {

    console.log(array[i]);

}

// 현명한 방법

for (let value of array) {

    console.log(value);

}

 

결과보기

PS1. "use strict"; 모드 사용 시, 핑크색 let 키워드 빠지면 에러 남.

PS2. 영상에선 "use strict"; 코드가 누락된 상태라 에러 안 난 것임.

 

15:02 

7. Fun cloning

[객체 복사]

 

// 7. Fun cloning

// Object.assign(dest, [obj1, obj2, obj3...])

const user = { name: 'ellie', age: 20 };

const user2 = user;

user2.name = 'coder';

console.log(user);

결과보기

 

console.clear();


// old way

user2.name = 'ellie';

const user3 = {};

for (let key in user) {

    user3[key] = user[key];

}

console.log(user3);

결과보기

 

console.clear();


// new way1

const user4 = {};

Object.assign(user4, user);

console.log(user4);

결과보기

 

 

console.clear();


// new way 2

const user5 = Object.assign({}, user);

console.log(user4);

결과보기

 

console.clear();


// another example

const fruit1 = { color: 'red' };

const fruit2 = { color: 'blue', size: 'big' };

const mixed = Object.assign({}, fruit1, fruit2); // 뒤의 것이 앞의 것을 덮어씀.

console.log(mixed.color); // blue

console.log(mixed.size); // big

결과보기

 

PS1. "use strict"; 모드 사용 시, 핑크색 let 키워드 빠지면 에러 남.

PS2. 영상에선 "use strict"; 코드가 누락된 상태라 에러 안 난 것임.



분류 제목
PHP-서기 PHP 51 - 웹사이트크롤링 (= 사이트파싱) ★★★ (= 타사이트 특정부위 가져오기)
JS-서기 JS 8강 - for문 안쪽에 if문 사용 (= 행렬 표만들기 = 줄바꿈 = 줄바꾸기 = 줄변경 = 라인변…
regex PHP 정규표현식 패턴 26강 - (?!패턴) (소괄호 안 물음표 느낌표) : 뒤에 패턴 존재하면 무시, 존…
PHP7-서기 PHP7 32강 - 외부 SMTP 이용해 이메일 보내기 (= 네이버/구글 SMTP 설정법)
JS-바위 JS 18강 - 스크롤트리거 (Scrolltrigger) - 스크롤 애니메이션 구현
PHP-쩡원 PHP 기초 10강 - 게시판 만들기 - 코멘트 (=댓글) , 답댓글 (= 대댓글) 입력, 출력, 입출력
regex PHP 정규표현식 패턴 15강 - 수량자 ─ { } (중괄호) - 문자 반복 횟수 특정
PHP-생코 PHP 25강 - 조건문 논리연산자 (and (&&) , or (||)) ★★★
PHP2020-서기 PHP2020 4강 - 카카오맵 (MySQL 이용해 마커 표시 / 클러스터링 사용)
JS-서기 JS 12강 - 이벤트핸들러2 (event handler) - onload, onunload, / confi…
regex PHP 정규표현식 패턴 17강 - 수량자 ─ *? (별표 물음표), +? (덧셈 물음표), ?? (물음…
JS-엘리 JS 6강 - 클래스・오브젝트 차이점(class vs object), 객체지향 언어 클래스 정리 | (Jav…
서버 서버 - URL RewriteRule (= 라라이트룰 = URL주소치환 = URL주소변경)
regex PHP 정규표현식 패턴 9강 - [^ ] (대괄호안 꺽쇠) ─ 후보문자 제외한 모든 1글자로 된 문자
PHP-쩡원 PHP 기초 8강 - 게시판 만들기 (조회수증가, 날짜형식변경, 파일업로드, 파일명중복방지)
regex PHP 정규표현식 패턴 21강 - \d (역슬래시 소문자d) : 숫자 , \D (역슬래시 대문자D) : …
regex PHP 정규표현식 패턴 6강 - \ . (역슬래시 마침표) ─ 단순 문자열로서의 마침표 기호
regex PHP 정규표현식 패턴 22강 - \b (역슬래시 소문자b) : 워드(단어)의 경계
PHP-쩡원 PHP 기초 3강 - 회원가입 만들기 (테이블생성, 필드생성, 입력폼생성 / 쿠키, 암호화) (member,…
PHP-서기 php 10. 그외의 form관련 태그들 (input, textarea, select, option) ★★★…
1/35
목록
찾아주셔서 감사합니다. Since 2012