Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 개발자부트캠프추천
- 프로그래머스
- DesignPattern
- 빈 조회 2개 이상
- 커스텀 헤더
- @FeignClient
- 빈 충돌
- 디자인 패턴
- 프로그래머스 이중우선순위큐
- 99클럽
- 취업리부트코스
- 파이썬
- KPT회고
- jwttoken
- TiL
- 코딩테스트 준비
- 항해99
- 디자인패턴
- 구글 OAuth login
- jwt
- Spring multimodule
- 개발자 취업
- 전략패턴 #StrategyPattern #디자인패턴
- Python
- JavaScript
- spring batch 5.0
- 단기개발자코스
- infcon 2024
- 인프콘 2024
- 1주일회고
Archives
- Today
- Total
m1ndy5's coding blog
JavaScript 기초 - 변수, 연산 등 본문
What is JavaScript?
자바스크립트는 웹 브라우저 상에서 동작을 구현할 수 있는 객체 기반의 언어
Variables
값을 보관해두기 위한 공간, 값 그 자체
값을 재할당할 수 있음
컴퓨터 내 메모리 공간에 저장하여 재사용가능할 수 있게 함
// 안녕하세요 저는 mindyo입니다.
const name = 'mindyo';
console.log(`안녕하세요 저는 ${name}입니다.');
저장되는 공간은 어디?
RAM에 위치, 일련의 주소값과 매칭됨
변수의 종류와 선언 및 초기화(할당)
- var : 변수 -> 호이스팅이 일어남(코드 오류 발생 소지를 높임) -> 잘 사용하지 않음
- *호이스팅이란? -> 선언 위치와 상관없이 최상단으로 끌어올림
- let : 변수(값 재할당 가능) -> var대신 사용됨
- const : 상수(값 재할당 불가)
기본적으로는 const로 작성하고 필요한 부분에만 let하는 것이 이상적!!
정적 타입 언어 vs 동적 타입 언어
- 정적 타입 언어 : 컴파일 타임에 타입을 확인함 (ex. C, Java etc)
- 컴파일시 타입에 대해 미리 확인하기 때문에 타입 관련 런타임 오류를 방지 가능
- 타입이 명시적으로 지정돼 있기 때문에 가독성이 좋음
- 동적 타입 언어 : 런타임에 타입을 확인함 (ex. Python, JavaScript etc)
- 정적 타입 언어에 비해 지켜야할 규칙이 적어 코드가 짧고 쉬움
컴파일타임 vs 런타임
- 컴파일타임 : 코드에 오류가 있다면 컴파일 되지 않음
- 런타임 : 일단 실행이 되고 오류가 있는 부분에서 에러남
연산자
자바스크립트는 1 == '1'이 true가 되는 말도 안되는(?) 일이 발생한다
그 이유는 암묵적 변환이 일어나기 때문!!
따라서 자료형, 값까지 완벽하게 일치하는지를 확인하려면 =을 3번 써서 확인해야한다 ===
기본 자료형 vs 참조 자료형
- 기본 자료형 : 스택 메모리에 생성된 공간에 실제 변수값을 저장 (ex. const a = 5;)
- 참조 자료형 : 실제 데이터 값은 힙 메모리에 저장하고, 스택 메모리 공간에는 힙 메모리 위치값을 저장 (ex. const xhr = new XMLHttpRequest();)
스택 메모리 vs 힙 메모리
- 스택 메모리 : 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역
함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸
접근 속도 빠름 - 힙 메모리 : 사용자가 직접 관리할 수 있는 메모리 영역
사용자에 의해 메모리 공간이 동적으로 할당되고 해제
new나 포인터를 사용해 동적 메모리 할당
접근 속도 느림
'프론트엔드 > java script' 카테고리의 다른 글
프로그래밍, JavaScript란? (0) | 2023.05.06 |
---|---|
[미니 프로젝트] 우리FISA Calendar 만들기 (0) | 2023.05.06 |
[미니 프로젝트] 파파고 만들기 (0) | 2023.05.01 |
JavaScript - Browser Rendering, Web API, DOM (0) | 2023.04.30 |
JavaScript 기초 - 반복문, 객체, 함수, Array & String 등 (0) | 2023.04.30 |