2021. 5. 3. 01:35ㆍJavaScript
평소 c++이나 python을 사용하다가 웹을 해야하는 상황이 생겨서 javascript를 사용하게 되었다.
기본적으로 예전에 웹을 개발할 때, 잠깐 사용한 적이 있으나 이해를 바탕으로 활용을 한 것이 아니라 활용도가 너무 낮았다.
그리하여 요번에는 좀더 공부를 해서 활용도 높게 사용하여 볼 예정이다.
일단 javascript를 사용하는 방법은 크게 두 가지이다.
브라우저를 사용하느냐 node를 사용하느냐이다. 나는 브라우저보다는 nodejs를 사용하는 것을 추천한다.(deno도 있다)
nodejs는 https://nodejs.org/ko/ 에서 다운받으면 된다. 최신 버전보다는 lts버전을 추천한다.
node를 다운받았으면 선택지가 또 한번 생긴다.
javascript는 interpreter방식의 언어이기 때문에 cmd또는 terminal에서 사용하거나 VS code와 같은 에디터를 사용할 수 있다.
나는 VS code를 사용하였다. 사용하기에 훨씬 유용하고 이미 사용하고 있기 때문이다. VS code는 확장성이 매우 좋다.
JavaScript는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어이다.
그리고 single thread이며 비동기(Asynchronous) 처리 방식이라는 점이 일반적인 프로그래밍 언어들과 다르다.
JavaScript에서 변수 선언은 var,let,const라는 키워드로 하고 데이터 타입으로는 5개의 원시타입(숫자, 문자열, boolean, undefined, null)과 1개의 객체 타입(object)으로 이루어져있다. 추가로 ES6부터 symbol이라는 데이터 타입도 추가되었다. 기본적으로 숫자와 문자열은 누구나 알 수 있고 프로그래밍을 하신 분이라면 boolean과 null은 알고 있을것이라 생각된다.
boolean은 참과 거짓을 나타내는 데이터 타입이고, undefined는 var 키워드로 선언된 변수에 암묵적으로 할당되는 값으로 선언되지 않았다는 뜻이다. 일단 여기서 알 수 있듯이 javascript는 동적 타입언어라는 것을 알 수 있다.(동적 타입언어란, 변수 선언시 데이터 타입이 결정 되는 것이 아니라 데이터 할당시 변수의 데이터 타입이 결정 되는 언어이며 예시로는 javascript와 python 등이 있다.)
null은 값이 없다는 것을 의도적으로 명시할 때 사용하는 값이고, symbol은 ES6에서 추가된 변경 불가능한 원시 타입의 값이다. 마지막으로는 객체 타입은 객체, 함수, 배열 등이다.
숫자 데이터 타입은 배정밀도 64bit 부동소수점 형식이다.
ㅁ 2진수 리터럴 : 0b로 시작
ㅁ 8진수 리터럴 : 0o로 시작
ㅁ 16진수 리터럴 : 0x로 시작
도 숫자 데이터 타입에 속한다.
문자열 데이터 타입은 0개 이상의 16bit 유니코드 문자(UTF-16)의 집합으로 전 세계 대부부늬 문자를 표현할 수 있다.
문자열은 작은 따옴표(‘’), 큰따옴표(“”), 또는 백틱(``)으로 텍스트를 감싼다. 백틱으로 감싸는 것을 템플릿 리터럴 이라 부르는 데, 템플릿 리터럴은 멀티라인 문자열, 표현식 삽입, tagged 템플릿 등 편리한 문자열 처리 기능을 제공한다. 그리고 이스케이프 시퀀스를 지원하는 데 이는 다른 언어와 비슷하다.
특히 파이썬이랑 비슷하게 표현식을 사용할 수 있지만 javascript의 경우 일반 문자열이 아닌 템플릿 리터럴로 표현해야한다.
undefined와 null데이터 타입은 살짝 헷갈릴 수 있다. 서로가 다르며 0과도 다른 의미이다. 그 차이는 아래의 그림이 매우 잘 설명해준다.
프로그래밍에서 대체적으로 사용하는 몇 가지 암묵적인 룰이 있다.(물론 모든 프로그래밍 언어가 그렇다는 것은 아니다.) 그 중 하나는 연산시에 true는 1, false는 0으로 취급한다. 특이하게도 javascript는 null도 연산시에 0으로 취급한다.
참고
https://poiemaweb.com/es6-symbol
Symbol | PoiemaWeb
Symbol은 ES6에서 새롭게 추가된 7번째 타입이다. Symbol은 애플리케이션 전체에서 유일하며 변경 불가능한(immutable) 원시 타입의 값이다. 주로 객체의 프로퍼티 키(property key)로 사용한다.
poiemaweb.com
'JavaScript' 카테고리의 다른 글
[JavaScript] 큰 숫자 변환 (0) | 2023.01.19 |
---|---|
JavaScript - Shallow Copy(얕은 복사) vs Deep Copy(깊은 복사) (0) | 2022.08.11 |