js는 명령문의 집합으로 구성되며 인터프리터
가 명령문을 순차적으로 해석하여 실행
인터프리터 | 컴파일 |
---|---|
필요한 코드를 읽고 실행한다(처음에 모든 코드를 기계어로 번역하진 않는다) | 모든 코드를 읽고(기계어로 번역) 실행한다 |
변수명, 함수명, 속성명, 클래스명 등의 이름을 지을 때 사용하는 규칙
영문자
, 숫자
, _
, $
만 가능
특히, 첫 글자는 영문자
,_
, $
만 가능
유니코드 문자 사용 가능
- 특수문자와 제어문자를 제외한 전세계 문자도 사용가능하지만 권장하지는 않음.
대소문자 구별
예약어와 키워드는 사용못함(if, for, function...)
관례적인 명명 규칙
- 변수명, 함수명에는 주로 카멜케이스(userName, userAge)
- 클래스명에는 주로 파스칼케이스(HighSchool, Collage)
- 대문자 상수는 스네이크 케이스(COLOR_BLUE, COLOR_RED)
☑️ 장점
정적 타입 | 동적 타입 |
---|---|
컴파일 시 타입 에러를 처리하기 때문에 안정성이 높다. | 코드 작성 시 타입에 대한 제한이 없어 유연성이 높다. |
컴파일 시 미리 타입을 결정해 실행속도가 빠르다. | 코드 작성이 효율적이다. |
☑️ 단점
정적 타입 | 동적 타입 |
---|---|
컴파일 타임에 타입에 대한 제한으로 코드 작성 시 유연함이 떨어진다. | 타입에 대한 리스크를 런타임에 감당해야한다. (코드가 길고 복잡해질 경우 타입 에러를 찾기가 어려워짐) |
number
,string
,boolean
,null
,undefined
,BitInt
,Symbol
Object
(Array
, Function
,Date
,RegExp
...)