DeepDive JS - 1일차 // 04장 ~07장

2025. 1. 15. 23:40JS

리마인드 할겸 정리.

04장 변수


변수 = 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 , 그 메모리 공간을 식별하기 위해 붙인 이름

메모리에 메모리 셀이라는 게 있는데 셀 하나의 크기는1바이트(8비트 = 2^8)

각 셀은 고유 메모리 주소를 가짐.
식별자 = 변수이름, 어떤 값을 구별해서 식별할 수 있는 고유한 이름 , 메모리 주소를 기억함

변수선언 var, let const 키워드 사용 

초기화 : 변수가 선언된 이후 최초로 값을 할당하는 것

변수 선언 :  런타임 이전에 먼저 실행
값의 할당 : 소스코드가 순차적으로 실행되는 시점인 런타임에 실행

 

var 호이스팅 시 스코프 최상단으로 undefined로 초기화 이후 런타임 시 값 할당 

-> 런타임 이전 접근시 undefined를 반환하므로 예기치 못한 에러 발생

let, const 호이스팅 시 tdz(temporal dead zone)에 빠지고 런타임 시 값 할당

-> 런타임 이전 접근시 ReferenceError 반환

 

const 상수 이지만, 객체의 내부는 변경 가능

 

var result  = 10 + 20 

변수이름(식별자) : result

변수 값 : 30

할당(대입,저장) : 변수에 값을 저장

참조 : 변수에 저장된 값을 읽어 들이는 것

 

주소     

0x0001 result 
0x0002 10

0x0003 20

0x0004 30
0x0001 result  값 0x0004 참조

 

 


05장 표현식과 문

 

값 : 식이 평가되어 생성된 결과

ex) 10 + 20; //30

 

리터럴 : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법

ex) 3 (숫자 리터럴 ), { name : 'lee;, age : 20 }(객체 리터럴 ), [ 1, 2, 3](배열 리터럴 ), function () { }(함수 리터럴 ) 등

 

표현식 : 값으로 평가 될 수 있는 문 

ex) var x= 100 ;

 

문 : 프로그램을 구성하는 기본 단위이자 최소 실행 단위
ex) var s = 1 +  4 ;

표현식인 문은 값으로 평가되므로 변수에 할당할 수 있다.

ex) 일급 객체처럼 변수에 저장되거나, 매개변수에 전달 혹은 함수의 반환 값 같은 느낌.

 

 

06장 데이터 타입 

 

원시타입 제외하면 모두 객체타입

` ` (백틱) = 줄바꿈, 뛰어쓰기, ${}를 통해 동적 값 삽입

자바스크립트 변수는 선언이 아닌 할당에 의해 타입이 결정된다.

typeof로 확인시

var tax  //undefined

tax = 1 // number

tax = 'first' //string

tax =  true //boolean

 

 

07장 연산자

 

+ 연산자 좌우에 하나이상 문자열이면 문자열 연결 

ex ) 1 + '2' // '12' , 1 + true //2 , 1+false //1

암묵적 타입변환 : 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환 되는 것.

ex) 위의 true, false 

 

 

동등 비교 연산자 : == (암묵적 형변환) 

ex) 6 == '6'  //true 

일치 비교 연산자 : === 

ex ) 6 === '6' //false 

하지만, NaN이나 0과 -0의 경우, NaN === NaN //false , 0 === -0 //true 가 나온다.

이때 object.is( ) 를 사용하면 됨

object.is(0, -0) //false , object.is(NaN, NaN) //true   

 

삼항 조건 연산자 (표현식인 문임)

 var result = 조건  ?  true  :  false  ; 

논리연산자

|| :  A아니면 B

&& : 앞이 참임 ?
! : 반대

 

typeof null  === obj(객체임)

 

?. 대상(null, undefined) : undefined 반환

null, undefined ?? 값  : 값  반환

 

연산자우선순위는 ( )로 감싸면 됨.

'JS' 카테고리의 다른 글

DeepDive JS - 3일차 // 12,13,23장  (1) 2025.01.17
DeepDive JS - 2일차 // 08장 ~11장  (1) 2025.01.16
deep js - 7일차  (0) 2024.05.23
deep js - 6 일차  (0) 2024.05.23
deep js - 5일차  (0) 2024.05.21