JS & TS/JavaScript
[JavaScript] Javascript란?
Bay Im
2024. 2. 8. 10:31
- JavaScript
- HTML, CSS와 함께 웹을 구성하는 요소 중 하나 인 스크립트 언어
- 웹 페이지에서 동작하는 것을 담당한다.
- parameter, argument
- argument(인자)
- 어떤 함수가 호출될 때 전달하는 값
- parameter(매개변수)
- 전달된 값을 받아들이는 변수
- argument(인자)
- primitive(call-by-value) vs object(call-by-reference)
- call by value
- 값에 의한 호출 (값을 복사)
- 숫자, 문자열, boolean, null, undefined 같은 기본형(원시형)을 인자로 매개변수에게 넘길 때 사용 방식
- 값을 복사, 보존. 하지만 메모리 사용량 늘어남
- call by reference
- 참조에 의한 호출 (주소를 복사)
- 배열, 객체, 함수, 날짜, 정규표현식 같은 참조형 데이터의 주소값을 인자로 매개변수에게 넘길 때 사용 방식
- 값 복사말고 직접 참조해서 빠름. 하지만 참조기 때문에 값의 영향 (리스크)
- call by value
- JavaScript에서 primitive(call-by-value) vs object(call-by-reference)
- call by value
- JS는 원시데이터(숫자, 문자 등)에서 사용 (let)
- call by reference
- JS는 객체에서 사용 (const)
- call by value
- Primitive(원시) Type
- 숫자(Number, BigInt)
- number인 123과 bigint인 123n은 다르다! 덧셈 같은 계산도 안된다.(TypeError) 하지만 number + float는 계산 가능
- string + bigint 계산 시 문자열 합하기로 되어져서 나온다.
- 문자열(string)
- ex) s = new String() ⇒ [string: ‘’]
- boolean
- undefined
- null
- type은 object
- Symbol
- Symbol은 unique, 안의 값이 같아도 일치 연산자로 비교 시 false 임.
- new 생성 불가
- 숫자(Number, BigInt)
- Object(객체)/Reference(참조) Type
- 객체({}, instance 객체)
- 빈 객체 선언은 new Object(), {} 으로 선언
- 함수(function object)
- key와 value의 한 쌍을 프로퍼티라고 하고, function 안에 있으면 프로퍼티가 있으면 function 프로퍼티라고 한다.
- 만약 프로퍼티가 없는 function이면 method라고 한다.
- 배열([], Array)
- RegExp Set/WeakSet
- Map/WeakMap
- Date
- 객체({}, instance 객체)
728x90