
변수란 값을 저장하기 의해 확보한 메모리 공간 자체 또는 메모리 공간을 식별하기 위한 식별자이다. 간단히 말해 '데이터를 저장하는 공간' 이다.
![]()
컴퓨터의 모든 데이터는 2진수로 저장하기 때문에 메모리에 저장되는 모든 데이터는 2진수로 저장된다.
하지만 이 연산된 결과값을 가져오기 위해서는 주소값이 필요한데, 코드가 실행될 때마다 주소값이 변경 된다. 그리하여 주소에 직접 접근하는 방법은 옳지 않다.
따라서 프로그래밍 언어는 이를 기억하기 위한 메커니즘으로 제공하는 것이 변수이다.
자바스크립트에서 변수의 종류는 3가지가 있다.

어떤 변수들에 접근할 수있는지를 정의한다.
전역 스코프란 변수가 함수 바깥이나 {}바깥에서 선언되었다면, 전역 스코프로 정의된다.
지역 스코프(Block)란 중괄호로 감싸진 블록 내부에서만 사용이 가능하다.
함수 스코프(Function)란 특정 함수 내부에서만 사용이 가능하다.
자바스크립트에서 아직 선언되지 않은 함수나 변수를 끌어올려서 사용할 수 있도록 하는 자바스크립트의 작동 특성을 말한다.
변수를 선언하는 방법은 아래와 같다.
var variable1 = 1;
let variable2 = 2;
const variable3 = 3;
64비트 부동소수점 형식으로, 모든 숫자를 실수로 처리한다.
15비트 유니코드 문자셋(UTF-16)으로 구성된 문자열
true 와 false로 이루어진 데이터 타입
값이 할당되지 않았을 때, 자바스크립트 엔진이 암묵적으로 초기화하는 값
(타입도 값도 모두 undefined)
의도적으로 '값이 없음'을 명시하기 위해 할당하는 값
Number 와 String의 메서드 각각 3개와 사용 방법Number 메서드Number.isInteger : booleannumber.isInteger(123) // true
number.isInteger('123') // false
Number.parseIntstring.splitconst str = 'How are you doing?';
// 공백으로 구분(단어로 구분)하여 배열로 반환한다
console.log(str.split(' ')); // [ 'How', 'are', 'you', 'doing?' ]
// 각 문자를 모두 분리한다
console.log(str.split('')); // [ 'H','o','w',' ','a','r','e',' ','y','o','u',' ','d','o','i','n','g','?' ]
// 정규 표현식
console.log(str.split(/\s/)); // [ 'How', 'are', 'you', 'doing?' ]
// 인수가 없는 경우, 대상 문자열 전체를 단일 요소로 하는 배열을 반환한다.
console.log(str.split()); // [ 'How are you doing?' ]
// 공백으로 구분하여 배열로 반환한다. 단 요소수는 3개까지만 허용한다
console.log(str.split(' ', 3)); // [ 'How', 'are', 'you' ]
// 'o'으로 구분하여 배열로 반환한다.
console.log(str.split('o')); // [ 'H', 'w are y', 'u d', 'ing?' ]
String.sliceString.substring 과 기능이 같지만 음수를 사용 가능하다.const str = 'hello world';
// 인수 < 0 또는 NaN인 경우 : 0으로 취급된다.
str.substring(-5); // 'hello world'
// 뒤에서 5자리를 잘라내어 반환한다.
str.slice(-5); // 'world'
// 2번째부터 마지막 문자까지 잘라내어 반환
tr.substring(2); // llo world
str.slice(2); // llo world
// 0번째부터 5번째 이전 문자까지 잘라내어 반환
str.substring(0, 5); // hello
str.slice(0, 5); // hello
함수란 특정 기능을 수행하도록 설계된 독립적인 코드 블록을 의미한다.
필요할 때마다 호출하여 해당작업을 반복해서 사용할 수 이싿.
함수의 정의는 function 키워드로 시작되며, 다음과 같은 구성요소를 가진다.
1. 함수의 이름
2. 골호 안에 쉼표(,)로 구분되는 함수의 매개변수(parameter)
3. 중괄호({})로 둘러싸인 자바스크립트 실행문
function 함수이름(매개변수1,매개변수2){
함수가 호출되었을 떄 실행하고자 하는 실행문;
}
정의된 함수는 프로그램 내에서 호출되어야 비로소 실행된다.
일반적인 함수의 호출은 함수의 정의문과 같은 형태로 호출할 수 있다.
// addNum이라는 함수를 정의
function addNum(x,y){
return x+y;
}
// 함수 addNum을 호출하면서 매개변수에 3,5를 전달
console.log(addNum(3,5))
함수의 정의는 말그대로 실행시킬 일련의 과정의 정의를 내려 함수의 존재를 선언하는 것 뿐이지
실행을 의미하는 것이 아니다.
그러므로 함수를 실행시키 위해서는 함수를 호출 시켜줘야한다.
어떤 프로그래밍 언어든 코드는 의사 결정을 내리고 입력 내용에 따라 작업을 수행해야 한다.
간단하게 "만약에 ~라면 특정 코드를 실행해라"라는 것이 조건문이다.
사람(과 동물)은 항상 그들의 삶에 영향을 미치는 결정을, 작은 것(과자를 하나 먹을까? 두개 먹을까?)부터 큰 것(고향에 머물면서 아버지의 농장에서 일해야 할까? 아니면 천체물리학을 공부하러 미국으로 유학을 갈까?)까지 내립니다.
조건문은 우리가, 반드시 내려져야 하는 선택에서부터 (예를 들자면, "쿠키 한 개 또는 두 개"), 그 선택들의 결과까지 (아마도 "쿠키 한 개를 먹는다" 의 결과는 "여전히 배가 고프다" 일지도 모르고, "쿠키 두 개를 먹는다" 의 결과는 "배부르다, 그러나 엄마가 쿠키를 다 먹었다고 나를 야단칠 것이다" 일지도 모릅니다), 그러한 의사 결정을 자바스크립트에서 표현할 수 있게 합니다.
불리언(boolean)은 논리학에서 참(true)과 거짓(false)을 나타내는데 사용된다.
또한, 논리 연산이란 주어진 논리식을 판단하여 참과 거짓을 결정한다.

조건문은 어떠한 조건을 판별하는 기준을 만드는 것이다.
조건문에는 반드시 비교연산자가 필요하다,
비교의 결과는 늘 Boolean 즉, true 아니면 false이다.
비교연산자 종류
< > <= >= === !==
조건문에서 사용하지 않는 것
==, !=
위 연산자를 사용하지 않는 이유는 타입을 엄격하게 비교하지 않기 떄문이다.
// === 비교연산자를 사용한 경우
1 === 1 // true
1 === '1' // false
'true' === true // false
// == 비교연산자를 사용한 경우
1 == '1' // true
1 == true // true
null == undefined // true
[1] == true // true
if( 조건1 ) {
// 조건1이 통과(true)한 경우
} else if( 조건2 ) {
// 조건1이 통과하지 않고(조건1에서 false) 조건2가 통과(조건2에서 false)한 경우
} else {
// 모든 조건이 통과하지 않은 경우 (조건 1,2에서 false)
}