[Javascript] 변수, 타입, 함수

Hyebin·2021년 3월 2일
0

Javascript

목록 보기
1/27
post-thumbnail

변수


변수란?
뜻 그대로 해석하자면 '변할 수 있는 값'이고,
단 하나의 값을 저장할 수 있는 메모리 공간이다.

프로그래밍은 데이터 처리하는 것과 동일하다.

데이터를 위한 보관함 (메모리)이 있다면 이 메모리의 이름이 '변수'이다.
우리는 이름을 통해 데이터를 사용할 수 있다.

보관함(메모리)을 확보하는 것을 프로그래밍에서는 선언(declaration)이라 한다.
선언은 let/ var/ const 변수명으로 할 수 있다!
let / var / const의 차이는 따로 포스팅하기로😁

let age;

age란 변수를 선언했으니 이 변수의 메모리를 사용할 수 있게 되었다.

메모리를 확보했으니 메모리에 데이터 저장을 해보자
데이터 저장하는 것을 할당(assignment)이라 한다.

age = 12;

age에 정수 12를 할당시켰다.
이때 등호기호는 같다라는 의미가 아니라 데이터가 저장되었다는 의미로 사용된다.

선언과 할당 동시에 할 수도 있다.

let age = 12;

데이터 타입


타입이란?
프로그래밍 언어에서 사용할 수 있는 데이터 (숫자, 문자열, 불리언 등)의 종류이다.

자바스크립트에서 타입은 자바나 C언에처럼 변수를 미리 규정하는 정적 타입이 아니라 '동적 타입'이다.
동적 타입은 실행 도중(값을 할당할 때) 정해져 자동 형변환된다.

변수에는 다양한 타입이 존재한다.

기본 타입 (Primitive value)

  1. Boolean 타입
    Boolean은 논리적인 요소를 나타내고, true 와 false 의 두 가지 값을 가질 수 있다.

  2. Null 타입
    Null 타입은 딱 한 가지 값, null 을 가질 수 있다.

  3. Undefined 타입
    값을 할당하지 않은 변수는 undefined 값을 가진다.

  4. Number 타입
    자바스크립트에서는 소수, 정수 구분없이 모두 Number 타입에 해당한다.

let integer = 5;  //정수도 Number타입
let decimal = 3.14 //소수도 Number타입

String 타입과 Number 타입의 연산은 String으로 인식되어진다.
숫자의 연산은 숫자 형태끼리의 연산으로만 가능하다.

let score = 90 + '10';  //결과: '9010'
let score = 90 + 10;   //결과: 100
  1. String 타입
    텍스트 데이터가 String 타입에 해당한다.
let str1 = 'hello'; 
let str2 = "안녕하세요"; 

자바스크립트에서는 ''(작은따옴표)와 ""(큰따옴표) 모두 허용된다.

이 외에도 타입이 서로 섞인 복합(compound) 타입도 있다.

  • 자료형
    • 배열
    • 객체

함수


함수는 기능의 단위이다.
입력과 출력간의 매핑(mapping)을 가진다.
호출 후에는 반드시 돌아온다(return)

1. 함수 선언 (declaration)

함수 선언 방법

1) 함수 선언식

function myFunction(input) {
	//컴퓨터에게 시킬 일
}

2) 함수 표현식

let myFunction2 = function(param1, param2) {
	//컴퓨터에게 시킬 일
 
 	//result란 변수에 param1과 2를 더한 값이 할당된다. 
 	let result = param1 + param2;  
 	//결과를 result로 리턴한다.
 	return result;
}

함수에서 사용할 입력값을 매개변수(parameter)라 한다.
여기서는 input, param1, param2가 매개변수이다.

2. 함수 호출 (call, invocation)

파라미터들은 함수 호출시 받은 인자(arguments)값으로 바뀐다.
파라미터 평가가 완료되면 함수코드 순차적 실행되고 함수가 리턴된다.

  			//인자값
let output = myFunction2(10,20);

파라미터 param1, param2가 함수 호출시에 전달된 인자 10,20로 바뀐다. 인자값으로 바뀌면 함수가 아래와 같이 실행된다.

let myFunction2 = function(10, 20) {
  	let result = 10 + 20; 
  	//함수가 return하면 다시 호출된 장소로 돌아가 리턴값을 출력해준다.
  	return result;
}

아무것도 return하지 않으면 undefined를 리턴한다.

3. Number 타입으로 변환

number로 변경하기 위해서는 Number() 함수를 사용할 수 있다.

number, string, boolean 타입만 입력된다.

숫자로 세고 싶은 정보가 string일 때, 정상적인 숫자를 위한 연산을 수행할 수 없기 때문에 타입을 변환해서 연산해줘야 한다.

아래와 같이 convertToNumber라는 함수를 만들고 result 변수에 Number(anything) 함수를 할당해줬다.
anything 파라미터에 문자열 인자를 넣으면 숫자로 변환되게 된다.

function convertToNumber(anything) {
	let result = Number(anything);
  	return result;
  	//return Number(anything);
}

let output = convertToNumber('1234');  //결과 : 1234
let output2 = convertToNumber('hello');  //결과 : NaN
let output3 = convertToNumber('3.14');   //결과 : 3.14
  

이때 주의해야 할 점은 인자값을 숫자로 변환 할 수 없는 경우에는 NaN이 리턴된다.

4. String 타입으로 변환

String으로 변경하기 위해서는 String() 함수를 사용할 수 있다.

number, string, boolean 타입만 입력된다.

String() 함수는 숫자를 문자열로 변환시키는 함수로 앞서 본Number()함수와 사용법은 동일하다.

function convertToString(anything) {
  	return String(anything);
}

let output = convertToString(120);	//결과: '120'
let output2 = convertToString('hello');	//결과: 'hello'
let output3 = convertToString(false);	//결과: 'false'

0개의 댓글