본문 바로가기
  • soldonii's devlog

udemy48

자바스크립트에서 전역 변수가 나쁜 이유, 그리고 IIFE *Udemy의"Advanced Javascript Concepts"강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 글로벌 변수 렉시컬 환경과 그에 따른 스코프 체인을 배웠는데, 글로벌 스코프에서 변수를 선언하면 어떤 스코프에서도 모두 접근이 가능하니까, 그냥 글로벌 스코프에 변수를 선언하면 안되는 걸까? 글로벌 스코프에 함부로, 마구잡이로 변수를 선언하면 안되는 이유는 크게 2가지이다. 1) 메모리 공간의 낭비로 인한 메모리 누수의 가능성 2) 변수 간 충돌 가능성 하나의 웹 페이지, 앱 안에는 수 많은 자바스크립트 파일이 포함되게 된다. 이 때 수 많은 자바스크립트 파일 간에 서.. 2019. 8. 30.
자바스크립트의 스코프 : 함수 스코프와 블록 스코프 *Udemy의"Advanced Javascript Concepts"강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 함수 스코프 vs. 블록 스코프 용어가 헷갈리니 한 번 정리하고 넘어가자. - 스코프(scope) : 함수가 실행될 때, 함수 내에서 변수에 대한 접근이 어떻게 되는지를 나타내는 용어이다.(함수의 실행 컨텍스트 내에서의 변수 환경이 무엇인지) 스코프는 함수를 기반으로 한 용어이다. - 컨텍스트(context) : this 키워드의 값이 무엇인지를 나타내는 용어이다. 현재 실행 컨텍스트 내에서 어떤 객체를 참조하고 있는지를 의미한다. 컨텍스트는 객체를 기반으로 한 용어이다. .. 2019. 8. 29.
자바스크립트의 스코프 체인과 변수 환경 *Udemy의"Advanced Javascript Concepts"강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 함수 선언 - 함수 표현식과 함수 선언식 새로운 함수가 실행될 때마다 콜스택에 실행 컨텍스트가 하나씩 쌓인다고 배웠다. 이 실행 컨텍스트 내에서 변수 또는 함수가 메모리에 저장되는데, 함수 표현식과 함수 선언식은 메모리에 함수가 저장되는 방식이 서로 다르다. // function Expression var canada = function() { console.log('cold'); } // function Declaration function india() { cons.. 2019. 8. 29.
자바스크립트의 자료구조 *Udemy의 "Master the Coding Interview : Data Structures + Algorithms" 강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 자료 구조? 알고리즘? 자료 구조란, 말 그대로 정보(자료)를 저장하는 형태를 의미한다. 알고리즘이란, 자료 구조의 정보를 사용하기 위한 일련의 과정을 의미한다. 각각의 자료 구조는 형태가 다르고, 따라서 각각의 장단점도 다르다. 예를 들어 옷장, 서랍, 파일철 모두 무언가를 담는다는 의미에서 모두 같은 container이지만, 각각의 용도와 장단점이 모두 다른 것과 유사하다. 자료 구조의 종류는 굉장히 많다. .. 2019. 8. 28.
자바스크립트의 실행 컨텍스트와 호이스팅 *Udemy의 "Advanced Javascript Concepts" 강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 실행 컨텍스트(Execution Context) function printName() { return 'Hyunsol' } function findName() { return printName() } function sayMyName() { return findName() } sayMyName() 자바스크립트 엔진은 (), 즉 함수 실행을 보면 "아 내가 무언갈 해야하는구나!"라고 인지하고, 동시에 실행 컨텍스트를 생성한다. 예를 들어, 위 코드에서 sayMyNam.. 2019. 8. 28.
자바스크립트에서 Big O(시간 복잡도)란? *Udemy의 "Master the Coding Interview : Data Structures + Algorithms" 강의에서 학습한 내용을 정리한 포스팅입니다. *https://soldonii.github.io에서 2019년 8월 19일(월)에 작성한 글을 티스토리로 옮겨온 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 좋은 코드란? 좋은 코드의 조건은 크게 3가지이다. ① READABLE : 읽고 이해할 수 있는가 ② EFFICIENCY : 메모리를 효율적으로 사용하는가 ③ SCALABLE : input의 규모가 커져도 느려지지 않는가 Big O는 코드가 Scalable한 코드인지, 알고리즘을 수행할.. 2019. 8. 27.
자바스크립트 런타임 : 싱글 쓰레드, 노드 js *Udemy의 "Advanced Javascript Concepts" 강의에서 학습한 내용을 정리한 포스팅입니다. *https://soldonii.github.io에서 2019년 8월 17일(토)에 작성한 글을 티스토리로 옮겨온 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 싱글 쓰레드(Single Threaded) 자바스크립트는 SINGLE THREADED LANGUAGE이다. 자바스크립트의 콜스택은 한 개이기 때문에 다른 작업이 추가로 들어왔을 때, 다른 콜스택에서 작업하는 것이 아니라 현재 콜스택의 위에 쌓이게 되는 것이다. 따라서 자바스크립트는 한 번에 한 개의 작업만을 수행할 수 있다. 비유하자면 내.. 2019. 8. 27.
자바스크립트 런타임 : 콜스택과 메모리 힙 *Udemy의 "Advanced Javascript Concepts" 강의에서 학습한 내용을 정리한 포스팅입니다. *https://soldonii.github.io에서 2019년 8월 16일(금)에 작성한 글을 티스토리로 옮겨온 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. Writing Optimized Code 최적화된 코드를 위해서, 아래 5개 키워드를 사용할 때에는 주의가 필요하다는 점을 인지하자. eval() arguments ⇒ destructuring을 통해 arguments 키워드를 대체할 수 있다. for in ⇒ Object.key()를 사용하는 것을 추천한다. with delete # 인라.. 2019. 8. 27.
자바스크립트의 작동 원리는?(크롬 V8 엔진) *Udemy의 "Advanced Javascript Concepts" 강의에서 학습한 내용을 정리한 포스팅입니다. *https://soldonii.github.io에서 2019년 8월 15일(목)에 작성한 글을 티스토리로 옮겨온 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. 자바스크립트 엔진 자바스크립트 파일을 작성해서 컴퓨터에게 전달할 때, 컴퓨터는 도대체 어떻게 우리가 작성한 자바스크립트 코드를 해석해서 의도한 결과물을 출력해줄까? 프로그래밍을 공부하는 사람이라면 누구나 한 번쯤은 궁금증을 가질만한 주제이다. 이 내용에 대해서 공부해보자. 사실 컴퓨터는 0과 1로 두개의 값만 이해할 수 있다. 그런데 우리.. 2019. 8. 27.