본문 바로가기

IT Language/JavaScript

[JavaScript] 자바스크립트 입 출력 / 호이스팅 (hoisting) /Scope

자바스크립트

자바스크립트(JavaScript)는 객체(object) 기반의 스크립트 언어이다.

HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트로는 웹의 동작을 구현할 수 있다.

자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버 측 프로그래밍에서도 사용할 수 있다.

 

  • 자바스크립트는 객체 기반의 스크립트 언어이다.
  • 자바스크립트는 동적이며, 타입을 명시할 필요가 없는 인터프리터 언어이다.
  • 자바스크립트는 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있다.

자바스크립트 입출력

  • 입력 : prompt / confirm
  • 출력: alert
  • 콘솔 :console.log()

 

document.write("<h1>안녕하세요.</h1>");
alert("Hello World");

자바스크립트 자료형

문자열(String) 

let str = "가나다라" 
console.log("str : " + str)

 

숫자(Numder)

let num = 123;
console.log("num : "+ num)

 

불리언(Boolean)

let boo = true;
console.log("boo : "+ boo)

 

  • 함수
  • 객체
  • undefine : 선언만 하고 초기화되지 않은 변수

 

javascript 콘솔 출력

- 자바 스크립트 출력과 함수 출력방법

호이스팅 hoisting

JavaScript에서 호이스팅(hoisting)이란,

 "변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는" 것

인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다. 

var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화한다.

Scope

scope란 범위, 보통 유효범위를 뜻하며, 어떤 변수들이 어느 시점까지 유효한지를 정의한다.

scope에는 두 가지 종류가 있다.

 

  • 함수 스코프
  • 블록 스코프

function Scope

함수 스코프는 함수에 의해서 생기는 범위를 뜻한다. ES5까지는 범수의 유효범위가 함수에 의해서만 발생할 수 있었지만,

ES6로 넘어오게 되면서 block scope라는 것이 탄생하게 되었다.

Block Scope

블록 스코프도 유효범위를 의미하는데, 여기서 블록은 코드 문단 {}(중괄호) 를 나타낸다.

따라서 { }에 의해서 생기는 변수의 유효범위를 블록 스코프라고 한다.

'IT Language > JavaScript' 카테고리의 다른 글

[javaScript] 데이터타입 / 반복문 for문  (0) 2023.03.10