Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 28 additions & 10 deletions clicelee/04강/04강.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@
10+20을 연산할때, 우선 10과 20을 메모리 셀에 저장(write)한다
그리고 연산을 할때 메모리 셀을 읽어 10과 20이라는 숫자를 얻어 낸다

![[IMG_50D55E86D0E7-1.jpeg]]

![](https://i.imgur.com/SbRtHig.png)


### 값을 식별하기 위한 역할

Expand All @@ -48,7 +50,9 @@


### 정리
![[IMG_1BFE577289BD-1.jpeg]]

![](https://i.imgur.com/IoTHxaB.png)


용어를 다시 정리하자면
변수에 값을 저장하는 것을 할당, 대입, 저장(assignment) 이라고 하고
Expand All @@ -62,7 +66,9 @@
대신 `메모리 주소`를 구별한다
식별자가 기억하고 있는 메모리 주소를 읽고, 그 다음 메모리에 담긴 값을 읽는 과정이 이루어지는 것이다

![[IMG_EFED7B257E7B-1.jpeg]]

![](https://i.imgur.com/oBjPPwH.png)

>[!note] 식별자
>식별자는 메모리 주소에 붙인 이름이다

Expand All @@ -88,7 +94,9 @@ ES6 전에는 `var` 키워드 밖에 없었지만, 이후 `let`과 `const`가

2. 초기값이 설정된다
`var score=0;` 처럼 사용자가 초기화 해주지 않은 경우에는 값이 `undefined`로 자동 초기화 된다
![[IMG_F39B3F942C5F-1.jpeg]]

![](https://i.imgur.com/pZGiIWf.png)


undefined는 자바스크립트에서 제공하는 원시 타입의 값이다
자세한 내용은 6장의 [[데이터 타입]] 에서 자세히 알아볼 수 있다
Expand Down Expand Up @@ -119,7 +127,9 @@ undefined는 자바스크립트에서 제공하는 원시 타입의 값이다
Javascript는 **인터프리터 언어**임과 동시에 **컴파일 언어**다. 그래서 이러한 특징이 존재한다.

## 호이스팅(Hoisting)의 개념
![[Screenshot 2024-07-15 at 11.52.16 AM.png]]

![](https://i.imgur.com/fQste2q.png)

호이스팅(Hoisting)은 JavaScript에서 변수와 함수 선언이 스코프의 상단으로 끌어올려지는 특징이다

코드 실행 전에 **JavaScript 엔진**에 의해 처리된다
Expand Down Expand Up @@ -252,7 +262,9 @@ var score=80;
> 변수 선언과 값의 할당은 2개의 문으로 나누어져 각각 실행되며
> 실행 시점도 서로 다르다. 변수 선언이 먼저 이루어진다(이때 초기 할당값은 undefined)

![[IMG_F57981D08232-1.jpeg]]

![](https://i.imgur.com/LAvuNxY.png)



# 4.6 값의 재할당
Expand All @@ -269,7 +281,9 @@ undefined, 80 처럼 사용되지 않는 값은 ==가비지 콜렉터에 의해
단! 메모리에서 언제 해제되는지는 모른다

js개발자가 *메모리 주소를 이용해 값에 접근하면 안 된다*는 것을 다시 한번 기억하고 넘어가자
![[IMG_36D21E32DCD1-1.jpeg]]

![](https://i.imgur.com/yI21KBQ.png)


>[!note] unmanaged lang VS managed lang
> ##### unmanaged language
Expand Down Expand Up @@ -303,17 +317,21 @@ js개발자가 *메모리 주소를 이용해 값에 접근하면 안 된다*는
3. 예약어는 식별자로 사용할 수 없다

## 예약어
![[Pasted image 20240715223005.png]]

![](https://i.imgur.com/zfS2eUI.png)


## 영어 이외의 다른 언어로 이루어진 식별자: 한글 식별자

ES5부터 식별자를 만들 때 유니코드 문자를 허용하기 때문에 한글, 일본어 식별자도 사용할 수 있다
책에서는 한글 식별자를 비추천 했다

그러나 토스에서는 한글로 짓는 변수를 짓는 *세종대왕 프로젝트*를 진행한 적이 있다
한편 토스에서는 한글로 짓는 변수를 짓는 *세종대왕 프로젝트*를 진행한 적이 있다
관련 게시물: [세종대왕 프로젝트](https://tosspayments-dev.oopy.io/chapters/frontend/posts/hangul-coding-convention)

![[Screenshot 2024-07-15 at 10.33.28 PM.png]]

![](https://i.imgur.com/U7ihYiW.png)


(아직까지 사용하는지는 모르겠다)

Expand Down
Loading