javascript
Javascript : Variable(변수)
ThatHomr
2023. 3. 14. 12:22
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name='viewport' content='width=device-width, initial-scale=1'>
<title>JavaScript - Variable</title>
<link rel="stylesheet" href="../../css/reset.css">
<link rel="stylesheet" href="../../css/dark.css">
</head>
<body>
<!-- JavaScript 코드를 작성하기 위한 태그 -->
<script>
// HTML 문서(DOM)에 원하는 컨텐츠를 출력
document.writeln("Hello World!");
document.writeln("Hello JavaScript!");
// → HTML 문서에서는 모든 공백을 하나의 공백으로 처리
// → 따라서 각 줄마다 출력하기 위해 script 태그를
// pre 태그 안에 작성
</script>
<hr>
<pre><script>
document.writeln("Hello World!");
document.writeln("Hello JavaScript!");
// 정적(static) vs 동적(dynamic)
// - 정작 = 변하지 않고 유지되는 특성
// - 동적 = 외부 요인(데이터, 사용자)에 따라 변하는 특성
// HTML 과 CSS 만으로 작성하면 이는 '정적 페이지'로만 작성된다.
// → 문서를 작성하고, 그 작성한대로만 출력
// JavaScript 를 통해서 '동적 페이지'를 만들 수 있다.
// → 사용자가 원하는 대로 상황에 따라 다르게 만들어질 수 있다.
// → 만약 게시글이 7개가 있다면 7개의 행만 만들고
// 만약 게시글이 5개가 있다면 5개의 행만 만든다.
</script></pre>
<hr>
<pre><script>
// 데이터(Data)
// - 프로그램에서 다루는 값
// - 300, -10, 3.1111, "itemA" ...
// - 실 생활에서 숫자와 문자를 구분하듯이
// JavaScript 에서도 데이터를 구분하여 사용한다.
// 자료형(Data Type)
// - 프로그램에서 사용되는 데이터의 종류를 정의
// - 종류
// blooean = 논리
// : 참 또는 거짓을 표현하기 위한 타입
// : 명제 또는 조건의 결과를 표현할 때 사용되는 데이터의 타입
// : "나이가 20살 이상입니까?"
// : true(참), false(거짓)
// number = 숫자
// : 소수점이 없는 수(정수)와 소수점이 있는 수(실수)를
// 표현하기 위한 타입
// : 10, -5, 3.112
// string = 문자열
// : 다수의 문자들을 하나의 집합으로 표현하기 위한 타입
// : 따옴표로 문자들을 묶어서 표현
// : 따옴표로 묶지 않고 바로 작성하면, 이를 데이터가 아닌
// 키워드 또는 식별자로 인식
// : "Hello", "100", ...
// function = 함수, 기능
// : 하나의 기능을 표현하기 위한 타입
// : 하나의 기능을 구현하기 위한 명령어들로 작성
// : println(), alert(), ...
// object = 객체
// : 특정 사물, 대상을 표현하기 위한 타입
// : document, console, window, ...
// undefined = X
// : '아무런 데이터가 존재하지 않는다' 를 의미
//-------------------------------------------------------------
// boolean 타입
// - 명제 또는 조건의 결과를 표현하기 위한 타입
// - 0, "", null, undefined → false 와 같은 취급
// 그 외 모든 데이터 → true 와 같은 취급
document.writeln("===== boolean =====");
document.writeln(true); //참
document.writeln(false); // 거짓
// 10 이 20보다 크다 → 거짓
document.writeln(10 > 20);
// 10 이 20보다 크다 → 참
document.writeln(10 < 20);
// number 타입
// - 정수(inteer)
// : 소수점이 없는 수
// - 실수(floating-point)
// : 소수점이 있는 수
document.writeln("===== number =====");
document.writeln(100); // 정수
document.writeln(-50); // 정수
document.writeln(1.5); // 실수
// 더하기 연산자(+)를 통해 수학 연산을 할 수 있다.
document.writeln(1.5 + 50); // 실수
// string 타입
// - 문자 또는 문자들의 집합을 표현
// - 문자 형식의 데이터들은 따옴표로 묶어서 작성
// - 연결 연산자(+)를 통해서 다른 데이터와
// 하나의 문자열로 만들 수 있다.
document.writeln("===== string =====");
document.writeln("width : " + 300);
// = document.writeln("width : 300");
document.writeln("height : " + 300 + 400);
// = document.writeln("height : 300" + 400);
// = document.writeln("height : 300400");
// → 연결 연산자와 더하기 연산자를 연달아 사용할 경우
// 먼저 작성된 것부터 연산하게 된다.
document.writeln("height : " + (300 + 400)) ;
// = document.writeln("height : " + 700) ;
// → 먼저 연산되어야 하는 부분이 있으면
// 소괄호를 통해 묶어줘야한다.
//
// document.writeln("Wonderful Day!
// Beautiful Day!");
// → 문자열 내에 엔터를 넣어줄 수 없다.
// document.writeln("My name is "Park"!");
// → 문자열을 만드는 따옴표를 문자열 내에 작성할 수 없다.
// 제어 문자(Escape Character)
// - 위와 같이 문자열 내에 표현할 수 없는 문자들을
// 표시하기 위한 문자
// - 제어 문자는 역슬래쉬(\, 또는 원화)로 시작
// - 종류
// \n : new line , 개행 문자 = 엔터
// \t : tab, 탭 문자
// \' : 작은 따옴표 문자
// \" : 큰 따옴표 문자
// \\ : 역슬래쉬, 원화 문자
document.writeln("Wonderful Day!\nBeautiful Day!");
document.writeln("My name is \"Park\"!");
//------------------------------------------------------
document.writeln("===== typeof =====");
// 자료형 검사
// - typeof 연산자
// - 연산자 다음에 오는 데이터의 타입을 반환하는 연산자
document.writeln(typeof 200);
document.writeln(typeof "200");
document.writeln(typeof document);
document.writeln(typeof document.write);
</script></pre>
<pre><script>
// 변수(Variable)
// - "변하는 수"
// - 프로그램 내에서 데이터를 다루기 위한 가장 기본적인 수단
// - 프로그램은 스스로 데이터를 저장하지 않기 때문에
// 데이터를 직접 저장하고 관리하기 위한 수단이 필요
// - 변수의 가장 기본적인 기능 = 데이터의 저장/사용
// - 변수에는 저장된 데이터들을 구분하기 위한 식별자를 부여
// → 변수 = 데이터를 저장하기 위한 '식별자가 부여된 저장 공간'
// 변수의 용도
// - 입력/연산된 데이터의 저장
// - 데이터의 재사용
// - 사용되는 데이터의 용도/목적
// 변수를 사용하기 위한 방법
// 1. 변수 선언
// - 앞으로 사용할 변수를 생성
// - 데이터를 저장할 공간을 만들고 식별자를 부여하는 과정
// - var 키워드와 함께 식별자를 작성
// - 식별자는 저장될 데이터의 용도/목적을 알 수 있도록 작성
// 사각형의 너비를 저장하기 위한 변수
var width; // 식별자가 'width' 인 변수 생성
// 2. 데이터 대입(저장)
// - 선언된 변수에 데이터를 대입(저장)하는 과정
// - 대입 연산자(=)를 통해 변수에 데이터를 저장
// - 대입 연산자의 좌측에는 변수를
// 대입 연산자의 우측에는 저장할 데이터 또는 표현식을 작성
// - 대입 연산자가 우선 순위가 제일 낮기 때문에
// 우측의 표현식의 연산을 모두 한 다음 그 결과 값을 저장
// - 언제든지 다른 값으로 저장할 수 있으며
// 이전에 사용된 명령어에는 아무런 영향이 없다.
width = 200; // 변수 width 에 200 을 저장
width = 200 + 50; // 변수 width 에 200 과 50을 더한 값을 저장
// → width = 250;
// 3. 변수 초기화
// - 변수 선언과 동시에 데이터를 대입하는 과정
// - 변수 선언만 하게 될 경우 변수에 아무런 값이 없기 때문에
// 이후 코드에서 문제가 될 가능성이 있다.
// - 원하는 값이 없더라도 기본 값으로 저장을 하는 것이 좋다.
// 기본 값 = 0, false, null, ...
// var height;
// document.writeln( height ); // = undefined = 아무것도 없다.
// document.writeln( height + 50 ); // = NaN = Not a Number
var height = 200; // 변수 height 를 선언하고 200 을 저장
document.writeln( height );
document.writeln( height + 50 );
// 4. 변수 접근
// - 변수의 식별자를 코드에 그대로 작성
// 저장 공간에 접근할 수 있다.
// - 어떤 연산자와 같이 사용하더라도
// 변수에 저장된 값을 가져오는 것을 우선 시한다.
document.writeln(width);
// → document.writeln(250);
document.writeln("height = " + height);
// document.writeln("height = " + 200);
// document.writeln("height = 200");
document.writeln("height = " + height + "px");
document.writeln("area = " + (width * height) );
// → 출력되는 데이터를 연산하는 공식을 쉽게 알리기 위해
// 변수를 사용
var area = width * height;
// var area = width * height;
// var area = 250 * 200;
// var area = 50000;
// → 변수 area 에 저장되는 것은 'width' * 'height'의 식이 아닌
// 연산된 결과 값이 저장된다.
width = 100;
// → 변수 width 에 100을 저장 → 기존에 있던 250 은 삭제
// → 새로운 값이 저장되면, 이후 명령어부터 적용
area = width * height;
// → 변수 width 의 값이 다른 값으로 저장됐기 때문에
// 넓이도 다시 연산하여 저장해야한다.
document.writeln("area = " + area);
// 선언되지 않은 변수를 사용하면 오류가 발생
// - Uncaught ReferenceError: perimeter is not defined
// document.writeln(perimeter);
</script></pre>
<pre><script>
// 상수(constant)
// = "변하지 않는 수"
// = 항상 같은 수
// = 프로그램의 끝까지 값을 유지해야하는 경우에 사용되며
// ES6 에 추가된 키워드
const yes = true;
const no = false;
// 초기화를 통해 데이터를 한 번 저장하면
// 이후 절대 다른 값으로 저장할 수 없다.
// yes = 10;
// - Uncaught TypeError: Assignment to constant variable.
</script></pre>
</body>
</html>