[JavaScript] 반복문
2022. 11. 5. 19:38
프로그래밍 언어/JavaScript
반복문이란? 일반명사) 되풀이하는 것 고유명사) 프로그램 소스 코드 내에서 조건을 만족할 때까지 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문 반복문의 종류 for 문 for 문은 조건식이 거짓으로 판별될 때까지 코드 블록을 반복 실행한다. 문법 : for (초기화식; 조건식; 증감식) { // ... 조건식이 참인 경우 반복 실행될 코드 ... } 예시) for (let i = 0; i < 3; i++) { // 0, 1, 2 가 출력된다. console.log(i); } 초기화식 let i = 0 반복문에 진입할 때 단 한 번 실행됨. 조건식 i < 3 반복마다 해당 조건이 확인됨. false 이면 반복문을 멈춤. 본문 console.log(i) 조건이 true 일 동안 계속해서 실행된..
[JavaScript] 호이스팅
2022. 11. 5. 19:28
프로그래밍 언어/JavaScript
호이스팅이란? 일반명사) 끌어 올리기 고유명사) 선언한 위치와 상관없이 함수, 변수의 선언부를 인접한 스코프의 최상단으로 끌어올려 스코프 내 어디서든 해당 식별자를 관측할 수 있는 현상 호이스팅은 어떻게 발생하는가? 하지만 자바스크립트 엔진은 실제로 코드를 실행하는 시점에 함수, 변수의 선언부를 인접한 스코프의 최상단으로 끌어올릴 만한 능력이 없다. 단지 코드 실행 전에 어떤 과정을 거쳐서 변수, 함수에 대한 전체적인 정보를 미리 알고 있을 뿐이다. 여기서 말하는 어떤 과정이란 참고) 자바스크립트는 코드 실행 전 따로 컴파일 과정을 거친다. 컴파일 : 사람이 이해하는 언어로 이루어진 코드를 컴퓨터가 이해할 수 있도록 쪼개고, 체계적인 구조로 재가공하여 전체를 분석하는 일련의 과정 자바스크립트 엔진은 코드..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6hOKd%2FbtrQuNoxISX%2Fprdlko1eFxtbQKTpgoHLe0%2Fimg.png)
[JavaScript] 실행 컨텍스트
2022. 11. 5. 19:15
프로그래밍 언어/JavaScript
실행 컨텍스트(Execution Context) 란? 실행할 코드에 제공할 환경 정보들을 모아 놓은 객체이다. 전역 코드 : 전역 영역에 존재하는 코드 함수 코드 : 함수 영역에 존재하는 코드 일반적으로 실행할 코드는 전역 코드와 함수 내 코드이다. 자바스크립트 엔진이 코드를 실행하기 위해 필요한 모든 정보를 하나의 객체로 묶어 놓은 것이다. 실행 컨텍스트 생성 과정 1. 실행 컨텍스트 생성 2. 스코프 체인의 생성과 초기화 실행 컨텍스트가 생성된 이후 가장 먼저 스코프 체인의 생성과 초기화가 실행된다. 이때 스코프 체인은 전역 객체의 레퍼런스를 포함하는 리스트가 된다. 3. 변수 객체화 실행 스코프 체인의 생성과 초기화가 종료하면 변수 객체화가 실행된다. 변수 객체화는 변수 객체에 변수, 매개변수와 인..
[JavaScript] 스코프(Scope)
2022. 11. 5. 18:40
프로그래밍 언어/JavaScript
스코프란? 일반명사) 유효 범위 고유명사) 참조하려는 대상의 식별자를 찾아내기 위한 규칙 변수는 어디에 저장되어 있는가? 필요할 때 프로그램은 어떻게 변수를 찾는가? 특정 장소에 변수를 저장하고 나중에 그 변수를 찾는데는 잘 정의된 규칙이 필요하다. 이런 규칙을 “스코프(Scope)” 라고 한다. 식별자 이름으로 변수를 찾기 위한 규칙의 집합 스코프는 크게 2가지로 구분할 수 있다. 전역 스코프 : 코드 어디서든 참조할 수 있는 스코프. 지역 스코프 : 함수 코드 블록이 만든 스코프로 함수 자신과 그 하위 함수에서만 참조할 수 있는 모든 변수는 반드시 스코프를 갖는다. 전역 변수 : 전역에서 선언된 변수이며 전역 스코프를 가지므로 코드 어디서든 참조할 수 있는 변수 지역 변수 : 지역 내에서 선언된 변수..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK2OUv%2FbtrQtVf2Phn%2FZXrhyVGV8XVUckvIiroTP1%2Fimg.png)
[JavaScript] 런타임 메모리 구조
2022. 11. 5. 18:22
프로그래밍 언어/JavaScript
런타임이란? 일반명사) 컴퓨터 프로그램 실행을 돕는 소프트웨어 고유명사) 특정 언어로 만든 프로그램들을 실행할 수 있는 환경(프로그램) 왜 사용하는가? 프로그래밍 언어로 작성된 프로그램을 실행하기 위해서 JavaScript 런타임 JavaScript 가 구동되는 환경 종류로는 브라우저(크롬, 파이어폭스, 익스플로러 등) 프로그램과 Node.js 라는 프로그램이 있음. JavaScript 엔진의 구성 : Memory Heap 과 CallStack 으로 구성되어 있음. 콜스택(CallStack) 실행 콘텍스트(Execution Context) 를 통해 원시 타입 데이터(정수, 실수, 문자, boolean 등) 가 저장된다. 함수의 호출부도 여기에 저장된다. 메모리 힙(Memory Heap) 참조 타입(객체 ..
[JavaScript] 변수 선언 방식 (var/ let/ const)
2022. 11. 5. 18:15
프로그래밍 언어/JavaScript
var / let / const 란 무엇인가? JavaScript 에서 변수 선언 시에 사용하는 예약어(키워드) 예약어(키워드) : 컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어들 1. var ES6(ECMAScript6) 이전에 변수 선언 방식이다. 변수 선언 및 초기화 후에 값을 재할당할 수 있다. 동일한 변수명으로 중복 선언이 가능하다. 예시) // 첫 번째 변수 선언 + 초기화 var a = 10; console.log(a); // 결과값: 10 // 값 재할당 a = 20; console.log(a); // 결과값: 20 // 두 번째 변수 선언 + 초기화 var a = 30; console.log(a); // 결과값: 30 // 세 번째 변..
[JavaScript] Primitive Type(원시 타입) 과 Reference Type(참조 타입)
2022. 11. 5. 17:59
프로그래밍 언어/JavaScript
자바스크립트의 자료형은 크게 원시 타입 과 참조 타입 으로 나뉜다. 원시 타입 (Primitive Type) 모두 하나의 값을 담고 있다. 값 자체에 대한 변경이 불가능(immutable) 하다. 예시) let myString = "hello"; myString[0] = 'B'; // 원시 타입이기 때문에 Bye 로 변경 불가능. 오류는 Throw 되지 않는다. console.log(myString); // bye 변수에 데이터를 재할당할 수 있다. 예시1) 문자열을 담고 있던 변수에 다른 문자열을 담을 수 있다. let myString = "hello"; myString = "bye"; // 재할당 가능 console.log(myString); // bye 예시2) 문자열을 담고 있던 변수에 숫자를 담..
[JavaScript] 자바스크립트 언어의 특징
2022. 11. 5. 17:54
프로그래밍 언어/JavaScript
자바스크립트의 특징 자바스크립트는 컴파일 언어이다. (자바스크립트는 코드 실행 전 코드 평가 과정을 거친다. 이 과정에서 선언된 모든 식별자에 대한 정보를 미리 수집해 메모리에 매핑시키는데, 이로 인해 코드 실행 시 호이스팅 문제가 발생한다.) 자바스크립트는 Lexical-Scoped 언어이다. (자바스크립트에서 함수 선언 시점에 스코프가 생겨나며, 함수를 선언하는 순간 함수 내부의 변수들은 자기 스코프로부터 가장 가까운 곳(상위 스코프에서) 에 있는 변수를 계속 참조하게 된다. 자바스크립트의 이런 특성으로 인해 생성되는 함수는 모두 클로저 함수라고 말할 수 있다.) 자바스크립트는 dynamically-typed 언어이다. (자바스크립트는 코드 실행 시점에 변수의 타입이 결정되고 변수 타입에 해당하는 메..