2025. 1. 15. 23:40ㆍJS
리마인드 할겸 정리.
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 |