컴퓨터 = 하드디스크(저장소) + 연산 + 메모리
메모리 : 1byte가 여러개 쌓여있는 구조
APP = Code + Data + Stack + Heap
사용자에게 입력을 받아서 처리한다.
처리한 것을 출력해 준다.
입력이 완료되면 처리한다.
입력 -> 처리 -> 출력
변수 : 값을 저장하는 공간 , 자료를 저장할 수 있는 이름이 주어진 기억 장소
자바스크립트에서의 변수선언 - 타입이 없다?? 타입이 언제 결정될까? -> 런타임시 문자열이었다가 숫자일 수 있다.
약형 언어 : 자바스크립트는 타입이 런타임시에 결정된다.
강형 언어 : 자바는 타입이 체크된다 -> 컴파일 타임에
ECMAScript5 : var사용함 -> 호이스팅 이슈가 있다. -> 문제점 제시
ECMAScript6 : let - 변하는 값 / const -> 고정 / let과 const는 호이스팅 이슈를 해결하였다.
for문일 때는 let 사용 상수일 때는 const를 사용한다.
let num // 변수선언 - 타입이 없다?? 타입이 언제 결정될까? -> 런타임시 문자열이었다가 숫자일 수 있다.
const a = 123
console.log(typeof(a)); //타입 확인 number
const b = "안녕하세요"
console.log(typeof(b));
console.log(typeof undefined == "undefined");
console.log(typeof [] =='object');
console.log(typeof {} =='object');
console.log(typeof function(){} =='object');
console.log(typeof function(){} =='function');
console.log([].constructor === Array);
console.log({}.constructor === Object);

동적 약형 언어
브라우저에서의 JavaScript
호이스팅은 변수, 함수 선언이 해당 스코프의 최상단으로 끌어올려지는 것처럼 동작하는 것
메모리 공간을 먼저 할당하기 때문에 발생하는 현상이다.
JavaScript는 다양한 환경에서 실행할 수 있는 유연한 언어입니다. 브라우저에서는 웹 페이지와 상호작용하며, Node.js와 같은 플랫폼을 통해 서버 측에서도 강력한 기능을 제공합니다. 이러한 환경들은 JavaScript가 단순한 스크립팅 언어를 넘어서, 포괄적인 프로그래밍 요구를 충족시키게 해줍니다.