일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- es6
- 숫자구하기
- 자바스크립트표준
- 컴퓨터 논리와 구조
- 네트워크해킹
- 브라우저 작동원리
- 이진검색
- 비전공자개발정리
- ES5
- 퀵정렬
- 주식스팸
- 공개API
- 트위터해킹
- es3
- ECMA설명
- 줌서비스
- CS스터디
- API요청
- 1일 1로그 100일 완성 IT지식
- 한국디도스
- es6문법
- 프로세서 속도와 심장 박동수
- 컴퓨터과학
- HDD와 SSD의 차이
- 빗썸데이터
- 데이터분석
- 알고리즘 문제 풀이
- 아키네이처
- 아마존해킹
- ES차이
- Today
- Total
목록책) 코어 자바스크립트 (8)
개발일지
https://ko.javascript.info/closure 변수의 유효범위와 클로저 ko.javascript.info let 함수의 변수 선언은 코드블로{…} 안에서만 사용할 수 있습니다. ‘렉시컬 환경’은 명세서에서 자바스크립트가 어떻게 도악하는지 설명하는데 쓰이는 ‘이론상의’ 객체 입니다. 따라서 코드를 사용해 직접 렉시컬 환경을 얻거나 조작하는 것은 불가능. 단계 1. 변수 자바스크립트에선 실행 중인 함수, 코드 블록 {...}, 스크립트 전체는 렉시컬 환경(Lexical Environment) 이라 불리는 내부 숨김 연관 객체(internal hidden associated object)를 갖습니다. 렉시컬 환경 객체는 두 부분으로 구성됩니다. 환경 레코드(Environment Record) ..
https://ko.javascript.info/recursion 재귀와 스택 ko.javascript.info 재귀와 스택 함수에 대해 좀 더 깊이 알아보도록 하겠습니다. 함수 심화학습, 첫 번째 주제는 재귀(recursion) 입니다. 프로그래밍을 새롭게 학습하는 초심자가 아니라 이 주제에 익숙하시다면, 본 챕터를 건너뛰어도 괜찮습니다. 재귀는 큰 목표 작업 하나를 동일하면서 간단한 작업 여러 개로 나눌 수 있을 때 유용한 프로그래밍 패턴입니다. 목표 작업을 간단한 동작 하나와 목표 작업을 변형한 작업으로 단순화시킬 수 있을 때도 재귀를 사용할 수 있습니다. 곧 살펴보겠지만, 특정 자료구조를 다뤄야 할 때도 재귀가 사용됩니다. 문제 해결을 하다 보면 함수에서 다른 함수를 호출해야 할 때가 있습니다. ..
https://ko.javascript.info/optional-chaining 옵셔널 체이닝 '?.' ko.javascript.info 옵셔널 체이닝(optional chaining) ?.을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있습니다. 옵셔널 체이닝이 필요한 이유 사용자가 여러 명 있는데 그중 몇 명은 주소 정보를 가지고 있지 않다고 가정해봅시다. 이럴 때 user.address.street를 사용해 주소 정보에 접근하면 에러가 발생할 수 있습니다. let user = {}; // 주소 정보가 없는 사용자 alert(user.address.street); // TypeError: Cannot read property 'street' of undefined 또 다른 사례..

메서드와 this 객체는 사용자(user), 주문(order) 등과 같이 실제 존재하는 개체(entity)를 표현하고자 할 때 생성됩니다. let user = { name: "John", age: 30 }; 사용자는 현실에서 장바구니에서 물건 선택하기, 로그인하기, 로그아웃하기 등의 행동을 합니다. 이와 마찬가지로 사용자를 나타내는 객체 user도 특정한 행동을 할 수 있습니다. 자바스크립트에선 객체의 프로퍼티에 함수를 할당해 객체에게 행동할 수 있는 능력을 부여해줍니다. 메서드 만들기 객체 user에게 인사할 수 있는 능력을 부여해 줍시다. let user = { name: "John", age: 30 }; user.sayHi = function() { alert("안녕하세요!"); }; user.sa..

자바스크립트는 눈에 보이지 않는 곳에서 메모리 관리를 수행합니다. 원시값, 객체, 함수 등 우리가 만드는 모든 것은 메모리를 차지합니다. 그렇다면 더는 쓸모 없어지게 된 것들은 어떻게 처리될까요? 지금부턴 자바스크립트 엔진이 어떻게 필요 없는 것을 찾아내 삭제하는지 알아보겠습니다. 그 전에 생명주기 먼저 알아가보시라고 링크 남겨드렸습니다!! 1. Allocate memory(메모리 할당) : 프로그램이 사용할 수 있도록 운영체제가 메모리를 할당하는 단계입니다 2. Use Memory(메모리 사용) : 할당된 메모리를 실제로 프로그램이 사용하는 단계를 말합니다. 3. Release Memory(메모리 해제) : 프로그램에서 필요하지 않은 메모리 전체를 되돌려주어 재활용 하게 만드는 단계입니다. 가비지 컬..

참조에 의한 객체 복사 변수엔 객체가 그대로 저장되는 것이 아니라, 객체가 저장되어있는 '메모리 주소’인 객체에 대한 '참조 값’이 저장됩니다. 객체는 메모리 내 어딘가에 저장되고, 변수 user엔 객체를 '참조’할 수 있는 값이 저장됩니다. 따라서 객체가 할당된 변수를 복사할 땐 객체의 참조 값이 복사되고 객체는 복사되지 않습니다. 예시: let user = { name: "John" }; let admin = user; // 참조값을 복사함 변수는 두 개이지만 각 변수엔 동일 객체에 대한 참조 값이 저장되죠. let user = { name: 'John' }; let admin = user; admin.name = 'Pete'; // 'admin' 참조 값에 의해 변경됨 alert(user.name)..

객체 객체는 중괄호{...}를 이용해 만들 수 있습니다. 중괄호 안에는 'key' : 'value' 쌍으로 구성된 프로퍼티를 여러개 넣을 수 있는데, 키엔 문자형, 벨류엔 모든 자료형이 허용됩니다. 예시로 서랍장을 설명하는데 복잡한 서랍장안에서 이름표를 보고 원하는 파일을 쉽게 찾을 수 있듯이, 객체에선 키를 이용해 프로퍼티를 쉽게 찾을 수 있습니다. 추가 삭제도 마찬가지. 중괄호 {..}를 이용해 객체를 선언하는 것을 '객체 리터럴' 이라고 부릅니다. 객체 선언할 때는 주로 이 방법을 많이 사용하죠 let user = { // 객체 name: "John", // 키: "name", 값: "John" age: 30 // 키: "age", 값: 30 }; 매달리는 쉼표 (trailing, hanging) ..
불변 객체 변수에 값을 할당해도 변수가 바뀌는게 아니라 새로운 주솟값에 입력된 값을 보여주는거다 단, 객체를 할당한다면 객체 자체가 변경된다 불변성이라고 하면 값이 안바뀌는데 변수 선언을 하면 바뀐다는게 무슨 말?? 중복되는 값이 안들어오면 새로운 공간에 값을 입력하고 그 주소를 변수에 보여주기 때문에 https://velog.io/@solmii/%EC%BD%94%EC%96%B4-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85%EC%83%81 https://sustainable-dev.tistory.com/156