본문 바로가기
  • soldonii's devlog

자바스크립트110

자바스크립트의 함수 호출 : call, apply, bind *Udemy의 "Advanced Javascript Concepts"강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. .call(), .apply(), .bind() this를 자유자재로 조작하기 위해서는 .call(), .apply(), .bind() 메소드의 사용법에 익숙해져야 한다. # .call() function a() { console.log('hi'); } a.call(); .call()과 .apply()는 모두 첫번째 인자로 실행할 대상 함수의 this 값을 대체할 다른 객체를 받는다. const wizard = { name: "Merlin", health: 100, .. 2019. 9. 7.
자바스크립트에서 this는 도대체 무엇일까? *Udemy의 "Advanced Javascript Concepts"강의에서 학습한 내용을 정리한 포스팅입니다. *자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :) 1. This? 아주 많이 보게 되지만, 볼 때마다 헷갈리는 this. 도대체 this가 뭘까? THIS is the object that the function is a property of. this는 위 설명대로, 현재 사용하려는 함수를 프로퍼티로 가지고 있는 객체를 가리킨다. function a() { console.log(this) } a(); // Window {.........} 함수 a는 글로벌 실행 컨텍스트 내에서 선언된 후, 실행되고 있다. 함수 a는 글.. 2019. 8. 30.
자바스크립트에서 전역 변수가 나쁜 이유, 그리고 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.