본문 바로가기

전체 글74

Window 객체 Window 객체란 브라우저의 요소, 자바스크립트 엔진, 모든 변수를 담고 있는 객체이다. 브라우저를 보면, 뒤로가기, 즐겨찾기, 탭, 주소창 등이 브라우저, 그 안에 웹사이트가 표시되게 된다. 이 브라우저 전체를 담당하는 것이 window 객체이고, 웹사이트를 담당하는 것이 Document 객체 인 것이다. window 객체 아래에는 대표적으로, screen , location , history, document 같은 객체들이 있다. 메소드로는 parseInt, inNaN 등이 있다. 그런데 왜, window.parseInt() 이렇게 써야 하는데 왜 그냥 써도 작동하는 것일 까? window는 전역객체이기 때문이다. 모든 객체를 다 포함하고 있기 때문에 window는 그냥 생략 가능하다. 자료형 , .. 2020. 8. 11.
String Method 로 간단한 함수 만들기 var lengthFunc = function() { var input = prompt("입력"); alert(input.length); } 메서드는 아니고, String의 length 속성을 이용해, 입력한 문장의 단어 개수 출력하는 함수 var prequenFunc = function(){ let input = prompt("단어 개수를 셀 문장 입력"); let prequen = input.split(' '); alert(prequen.length); } 문장을 입력하면, 단어가 몇 개로 이루어져 있는지에 대한 함수를 string의 split 메서드를 사용해 세보기 , 발전한다면 객체를 이용, python에서 했던 단어 빈도 개수 세기랑 동일하게 작성한다면 동일한 기능을 할 것이다. var Chan.. 2020. 8. 7.
스코프, 스코프 체인, outerEnvironmentReference 스코프(scope)란, 식별자에 대한 유효범위이다. 어떤 경계 A의 외부에서 선언한 변수는 A의 외부뿐 아니라, A의 내부 에서도 접근이 가능하지만, A의 내부에서 선언한 변수는 오직 A의 내부에서만 접근할 수 있다. 이러한 스코프의 개념은 대부분의 언어에 존재한다. 자바스크립트도 예외가 아닌데, es5 까지의 자바스크립트는 특이하게 전역공간을 제외하면 오직 함수에 의해서만 스코프가 생성됬다고 한다. 이러한 '식별자의 유효범위'를 안에서 바깥으로 차례로 검색해나가는 것을 스코프 체인(Scope chain)이라 한다. 그리고 이를 가능케 하는 것이 바로 LexicalEnvironment의 두 번째 수집 자료인 outerEnvironmnetReference 이다. ES6에서는 블록에 의해서도 스코프 경계가 .. 2020. 8. 3.
함수 선언문과 함수 표현식 함수 선언문(function declaration) 함수 표현식(function expression) 용도 함수 정의 함수 정의 함수명 기재 기재 해야함 기재 안해도 됌 또다른 이름 기명 함수 표현식 익명 함수 표현식 일반적으로 함수 표현식은 익명 함수 표현식을 말한다. 함수 정의하는 세 가지 방식 function a() { /* ... */ } // 함수 선언문 . 함수명 a가 곧 변수명. a(); // 실행 OK var b = function () { /* ... */ } // (익명) 함수 표현식. 변수명 b가 곧 함수명. b(); // 실행 OK var c = function d () { c() // 실행 OK d() // 실행 OK } c() // 실행 Ok d() // 실행 X 재귀함수를 호출.. 2020. 8. 3.
hoisting(호이스팅) 자바스크립트 엔진은 어떤 컨텍스트에 관련된 코드들을 실행하는데 필요한 환경 정보들을 수집해서 실행 컨텍스트 객체에 저장 한다. 이 객체는 자바스크립트 엔진이 활용할 목적으로 생성하는 객체들이고, 개발자들이 코드를 통해 확인 할 수 없다. VariableEnvironment : 현재 컨텍스트 내의 식별자들에 대한 정보 + 외부 환경 정보. 선언 시점의 LexicalEnvironment 의 스냅샷으로, 변경 사항은 반영되지 않는다. LexicalEnvironment : 처음에는 VariableEnvironment와 같지만 변경 사항이 실시간으로 반영됨. ThisBinding : this 식별자가 바라봐야 할 대상 객체 호이스팅은 컨텍스트 내부 전체를 처음부터 끝까지 쭉 훑어나가며 순서대로 수집한다.라는 걸 .. 2020. 8. 3.
LikeLion Third Session - git, github - 요약 git 이 명령어를 치면 깃의 명령어들에 대한 설명이 나온다. git init 이 명령은 .git 이라는 하위 디렉토리를 만든다. .git 디렉토리에는 저장소에 필요한 뼈대 파일이 들어 있다. 이 명령만으로는 아직 프로젝트의 어떤 파일도 관리하지 않는다. (.git 디렉토리가 막 만들어진 직후에 정확히 어떤 파일이 있는지에 대한 내용은 궁금하다면 아래의 링크를 참조하자) https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EB%82%B4%EB%B6%80-Plumbing-%EB%AA%85%EB%A0%B9%EA%B3%BC-Porcelain-%EB%AA%85%EB%A0%B9#ch10-git-internals Git - Plumbing 명령과 Porcelain 명령 10.1 Git의.. 2020. 8. 3.
노트북이.. 사망하셨다.. 노트북이 사망하셨다.. BIOS MODE 들어가서 확인해보니 , ssd 인식을 못한다.. 이제 보내줄 시간이 된 것 같다. msi 노트북은 as가 좀 별로라서.. 그냥 새 노트북을 질렀다. LG GRAM i7 을 샀다. 이전 노트북은 3kg이 넘어갔는데, 그램은 1.1kg 밖에 안된다. 아주 기대가 된다. 빨리 오기를 ㅎ 2020. 8. 3.
실행 컨텍스트(execution context) 실행 컨텍스트(execution context) 실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체로, 자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념이다. 자바스크립트는 어떤 실행 컨텍스트가 활성화 되는 시점에 선언된 변수를 위로 끌어올리고(호이스팅 (hoisting)), 외부 환경 정보를 구성하고, this 값을 설정하는 등의 동작을 수행하는데, 이로 인해 다른 언어에서는 발견할 수 없는 특이한 현상들이 발생한다. 클로저를 지원하는 대부분의 언어에서 이와 유사하거나 동일한 개념이 있다. 실행 컨텍스트를 정확히 이해하고 넘어가야, 개발자로서 실력 향상에 큰 도움이 될 것이다. 실행 컨텍스트를 살펴보기 전, 스택(stack), 큐(queue) 의 개념을 잠깐 되짚어보려 .. 2020. 8. 3.
undefined & null 자바스크립트 엔진은 사용자가 어떤 값을 지정할 것이라고 예상되는 상황임에도 지정하지 않으면 undefined를 반환한다. 다음 세 경우가 해당된다. 1. 값을 대입하지 않은 변수, 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때 2. 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때 3. return 문이 없거나 호출되지 않는 함수의 실행 결과 undefined 와 Array var arr1 = []; arr1.lenght = 3; console.log(arr1); // [empty x 3] var arr2 = new array(3); console.log(arr2); // [empty x 3] var arr3 = [undefined, undefined, undefined]; co.. 2020. 7. 29.