본문 바로가기

FrontEnd/java script

[java script] 자바스크립트 기본 문법(변수, 자료형 등)

728x90
반응형

1. 변수란?

변수(variable) : 값이 여러 번 달라질 수 있는 데이터

상수(constant) : 값을 한 번 지정하면 바뀌지 않는 데이터

 

◎ 변수 선언의 규칙

   ▷ 변수 이름

      ▶ 영어 문자, 언더스코어(_), 숫자를 사용합니다.

      ▶ 첫 글자는 영문자, _기호, $기호를 사용합니다.

      ▶ 띄어쓰기나 기호는 허용하지 않습니다.

         ex) now, _now, now25 (사용 가능)

         ex) 25now, now 25, *now25 (사용 불가능)

   ▷ 영어 대소문자를 구별하며 예약어는 변수 이름으로 사용할 수 없습니다.(int, String 등)

   ▷ 여러 단어를 연결할 때는 하이픈이나 언더스코어를 사용할 수 있고 중간에 대문자를 섞어 쓸 수도 있습니다.

         ex) total-area, total_area, totalArea 등

   ▷ 변수 이름은 다른 사람이 보기에 의미를 이해할 수 있도록 작성합니다.

 

◎ 변수 선언하기

   ▷ var 뒤에 변수 이름을 작성합니다.

   ▷ var를 한 번만 사용하고 뒤에 여러개의 변수를 한꺼번에 선언할 수도 있습니다.

 

◎ 변수에 값을 할당하기

   ▷ '=' 기호 다음에 값을 저장합니다.

 

//변수를 하나씩 선언하기

var currentYear;
var birthYear;
var age;


//변수를 한 번에 선언하기
var currentYear, birthYear, age;


//변수에 값 할당
var birthYear = 1996;
var currentYear;
currentYear = 2022;

 

2. 자료형이란

 

◎ 컴퓨터가 처리할 수 있는 자료의 형태

 

NO 종류 설명 예시
1 기본
유형
숫자형 따옴표 없이 숫자로만 표기합니다. var birthYear = 2000;
2 문자열 작은따옴표(' ')나 큰따옴표(" ")로 묶어서 나타냅니다. 숫자를 따옴표로 묶으면 문자로 인식합니다. var greeting = "Hello!";
var birthYear = "2000";
3 논리형 참(true)과 거짓(false)이라는 2가지 값만 있는 유형입니다. 이때 true와 false는 소문자로만 표시합니다. var isEmpty = true;
4 복합
유형
배열 하나의 변수에 여러 개의 값을 저장합니다. var seasons = ['봄', '여름', '가을', '겨울'];
5 객체 함수와 속성을 함께 포함합니다. var date = new Date();
6 특수
유형
undefined 자료형이 지정되지 않았을 때의 상태입니다.
예를 들어 변수 선언만 하고 값을 할당하지 않은 변수는 undefined 상태입니다.
7 null 값이 유효하지 않을 때의 상태입니다. 변수에 할당된 값이 유효하지 않다는 의미입니다.

 

인터넷 개발자모드(F12) → 콘솔 → 입력 : typeof 숫자

   ▷ typeof 100, typeof 100.0 → number출력

   ▷ typeof "a", typeof 'a' → string출력

      ▶ 자바와 다르게 정수, 실수가 구분되지 않고 숫자로 출력됩니다. → 실수를 정밀하게 게산하지 못합니다.

      ▶ 또한, 문자열과 문자도 따로 구분되지 않습니다.

 

 

◎ 배열

 

//배열의 기본형
배열명["값1", "값2", .......]
배열명[ ]

//예시
//배열 사용하지 않음
var spring = "봄";
var summer = "여름";
var fall = "가을";
var winter = "겨울";

//배열 사용시
var season = ["봄","여름","가을","겨울"];

 

자바스크립트는 데이터 유형이 자동 변환됩니다. 하나의 변수를 문자열로 받았지만 사칙연산에 해당 변수를 사용하면 자동으로 숫자형으로 변환되어 계산됩니다.

   ▷ 이것이 코드 작성시에는 편리하지만 코드 작성하면서 혼동이 올 우려가 있습니다.

 

 

3. 연산자

 

◎ 산술 연산자 : 계산을 할 때 사용하는 연산자입니다.

 

NO 연산자 의미 사용방법
1 + 더하기 c = a + b
2 - 빼기 c = a - b
3 * 곱하기 c = a * b
4 / 나누기 c = a / b
5 % 나머지 c = a % b
6 ++ 피연산자 1 증가 a++
7 -- 피연산자 1 감소 b--

 

산술 연산자는 자바와 동일하네요!!

 

 

◎ 할당 연산자(대입 연산자) : 연산자 오른쪽의 실행 결과를 왼쪽 변수에 할당하는 연산입니다.

 

NO 연산자 사용방법 설명
1 = y = x + 3  연산자 오른쪽 값을 왼쪽 변수에 할당합니다.
2 += y += x   y =  y + x  
3 -= y -= x   y = y - x
4 *= y *= x   y = y * x
5 /= y /= x   y = y / x
6 %= y %= x   y = y % x

 

 

◎ 연결 연산자 : 둘 이상의 문자열을 합쳐서 하나의 문자열로 만드는 연산자 '+' 기호를 사용합니다.

   ▷ document.write(birthYear + "년에 태어난 사람의 나이는 " + age + "세 입니다.");

 

 

◎ 비교 연산자 :  피연산자 2개의 값을 비교해서 true나 false로 결과값을 반환합니다.

 

NO 연산자 설명 예시

조건식             결과값
1 == 피연산자가 서로 같으면 true입니다. 3 == "3" true
2 === 피연산자도 같고 자료형도 같으면 true입니다. a === " 3" false
3 != 피연산자가 서로 같지 않으면 true입니다. 3 != "3" false
4 !== 피연산자가 같지 않거나 자료형이 같지 않으면 true입니다. 3 !== "3" true
5 < 왼쪽 피연산자가 오른쪽 피연산자보다 작으면 true입니다. 3 < 4 true
6 <= 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같으면 true 입니다. 3 <= 4 true
7 > 왼쪽 피연산자가 오른쪽 피연산자보다 크면 true입니다. 3 > 4 false
8 >= 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 true입니다. 3 >= 4 false

 

   ▷ == 연산자와 != 연산자 : 피연산자의 자료형을 자동으로 변환해서 비교합니다.

      ▶ 3 == "3"  →  true

   ▷ === 연산자와 !== 연산자 : 피연산자의 자료형을 변환하지 않습니다.

      ▶ 3 === "3"  →  false

 

 

 

◎ 논리 연산자 :  true와 false가 피연산자인 연산자 조건을 처리할 때 사용합니다.

 

NO 종류 기호 설명
1 OR 연산자 || 피연산자 중 하나만 true여도 true가 됩니다.
2 AND연산자 && 피연산자가 모두 true일 경우에만 true가 됩니다.
3 NOT 연산자 ! 피연산자의 반대값을 지정합니다.

 

◎ 나이 계산

 

<body>
    <script>
        var name;
        var currentYear = 2022;
        var birthYear;
        var age;

        name = prompt("이름을 입력하세요", "");
        birthYear = prompt("태어난 연도를 입력하세요. (YYYY)", "");
        age = currentYear - birthYear + 1;

        document.write(currentYear + "년 현재<br>");
        document.write(birthYear + "년에 태어난 <span id=name>" + name + "</span> 의 나이는 " + age + "세입니다.")
    </script>
</body>

 

이름과 태어난 년도를 입력받고 새로운 페이지에 출력하는 코드입니다.

너무 오랜만에 해서 다 잊어버렸네요,,ㅎㅎ

 

 

자바스크립트의 기본 입출력 방법은 다음 시간에 바로 업로드하겠습니다!!

 

 

많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

 

728x90
반응형