javaScript/jsDeepDive 26

데이터 타입에 따른 메모리 접근

하 시발.. 티스토리 서버 터져서 적어놓은거 다 날아가서 다시 쓴다..ㅡㅡ # 같은 메모리 값이라도 다른 결과가 나올 수 있다? let binaryData = 0b01000001; console.log(Number(binaryData)); //65 console.log(String.fromCharCode(binaryData)); //A 위 코드를 보자. binaryData변수값에 할당한 저 괴상한 숫자는 2진법으로 저장된 65라는 숫자다. 하지만 콘솔로 각각 찍어본 결과는 서로 다른 값이다. https://jacobowl.tistory.com/134 메모리에 저장되는 기본 구조. # 시작하면서 2진법에대해서 되돌아보자. 중학생때 배웠던 2진법을 기억하고 있을것이다. 즉 0,1로 숫자를 표현하는 방법인데 ..

값(value), 리터럴(literal), 표현식(expression), 문(statement)

# 리터럴(literal) 리터럴은 사람이 알아보는 기호로 적은 표기법을 말한다. 이전 '메모리에 저장되는 기본구조' 포스팅에서 컴퓨터는 데이터를 2진법으로 저장한다고 했었다. 메모리에 저장되는 기본 구조. # 시작하면서 2진법에대해서 되돌아보자. 중학생때 배웠던 2진법을 기억하고 있을것이다. 즉 0,1로 숫자를 표현하는 방법인데 예를들어 0은 10진법 수로 0이다. 1은 10진법수로 1, 10은 10진법 수로 2 jacobowl.tistory.com 숫자로 예를 들어보겠다. 사람은 숫자를 보통 10진법으로 표기한다. 하지만 컴퓨터는 2진법으로 알아듣는다. 즉 우리가 코드로 적는 2라는 수는 2진법 수로 10이고, 3이라는 수는 11이다. 때문에 우리가 코드에 2라는 수를 적으면 자바스크립트 엔진이 이를..

변수 호이스팅, 그리고 초기화 initialize, Temporal Dead Zone

초기화는 변수선언시에 최초로 undefined가 할당이 되는것을 말한다. 먼저 그림으로 살펴보면, let value = 'hello world'; 라는 코드가 실행되면 먼저 식별자 value가 가르키는 메모리주소1이 생성되고 이 주소가 가르키는 메모리공간에는 undefined가 할당된다. 그 후, 이 식별자 value는 메모리주소2를 가르키게되고 이 메모리주소 2가 가르키는 메모리공간에는 'hello world'라는 데이터가 재할당된다. # 먼저 선언하지 않은 변수를 참조해보자. console.log(babo); ReferenceError이 발생된다. 내용은 변수 babo가 정의되지 않았다라는 것이다. # 선언보다 참조를 먼저 하는 경우 var (호이스팅) console.log(babo); var bab..

변수와 메모리의 관계

# 변수 선언과 할당시 메모리 동작 구조. 1 단순히 코드상 1이라는 숫자를 하나 적었다. 그렇다면 메모리에는 어떻게 저장될까? 이 숫자 1이저장된 메모리공간에 메모리주소한개가 부여된다. 그렇다면 아래코드는 어떻게 저장이될까? let number_1 = 1; 1이라는 숫자를 number_1이라는 변수에 할당을 했다. 변수를 사용하면 위 코드에서 number_1이 즉 변수이름 식별자가 되고, 이 식별자는 메모리주소 하나를 가르킨다. 그렇다면 위의 코드를 실행하면 이렇게 구조가 잡힌다고 생각할 것이다. number_1이라는 식별자는 메모리 주소를 가르키고 이 메모리주소가 찾아가는 메모리에는 숫자 1이 저장되어있다. 하지만 이 구조는 틀렸다 자바스크립트는 변수선언시 이렇게 동작을 한다. // let numbe..

메모리에 저장되는 기본 구조.

# 시작하면서 2진법에대해서 되돌아보자. 중학생때 배웠던 2진법을 기억하고 있을것이다. 즉 0,1로 숫자를 표현하는 방법인데 예를들어 0은 10진법 수로 0이다. 1은 10진법수로 1, 10은 10진법 수로 2이다. 이런식으로 0과 1로 숫자를 표현할 수 있는것이다. 컴퓨터에선 메모리 주소 기본단위에 0이나 1을 저장할 수 있는데, 이 기본단위를 '비트'라고 한다. 이렇게 데이터 단위는 기본 Btye로 시작해서 2의 배수대로 커지는 시스템이다. 그럼 1바이트는 0이나 1을 저장할 수 있는 공간이 8개이니, 2^8 = 256 가지의 데이터를 저장할 수 있게된다. # 자바스크립트의 메모리 구조 위 그림처럼 메모리 하나는 1바이트(8비트)의 크기를 가지고 있고 각 셀마다 메모리 주소가 지정되어있다. 컴퓨터는 ..

시작하면서/ 자바스크립트 소개

렌더링 : HTML, CSS, Jave Script로 작성된 문서를 해석해서 브라우저에 시각적으로 출력하는것. 서버사이드렌더링 : 서버에서 데이터를 HTML로 변환해서 브라우저에 전달하는 과정 SSR (server side rendering) Node js : 자바스크립트 런타임 환경 비동기 I/O(입출력) 단일스레드 이벤트루프 기반 동작 SPA에 적합(single page Application) *CPU사용량이 높은 어플리케이션에는 권장하지 않음. ECMA Script 이크마스크립트 : ECMA-262, 자바스크립트의 표준사양 클라이언트 사이드 Web API # 자바스크립트는 개발자가 별도의 컴파일작업을 수행하지 않는 인터프리터언어. 컴파일러 언어 : - 코드가 실행되기전단계(컴파일) 타임에 소스코드 ..