오늘은 본격적으로 수업을 진행했다.
수업은 수업자료를 보며 스스로 공부하고 오후에는 지정된 Pair와 함께 문제를 풀어가는 방식으로 진행되었다.
과정을 진행하기 전에 나름 공부를 하며 준비를 했었기 때문에 크게 어렵지는 않았으나 아예 처음 시작하시는 분들은 많이 힘들었을 것 같다.
Pair Programming을 진행하며 진짜 말을 많이 했다.
다른 사람에게 나의 말을 이해시키는 것과 다른 사람의 말을 듣고 그 사람의 생각을 이해하는 것이 쉽지는 않은 것 같다.
과정을 진행하며 Windows OS를 사용하지 않고 Mac OS 또는 Ubuntu를 사용하기 때문에 급하게 주문한 맥북이 도착했다.
부랴부랴 필요한 프로그램을 설치하고 사용해보는데 평생을 Windows OS만 사용해서 굉장히 낯설다. 오늘은 자바스크립트의 변수, 타입(data type), 함수 그리고 조건문에 관한 내용을 학습했다.
여태까지 내가 배웠던 언어들처럼 변수란 값을 담기위한 그릇이다.
변수를 사용하기 위해서는 변수를 선언하고 선언한변수를 초기화하고 마지막으로 값을 할당해야한다.
1.변수를 선언한다는 것은 메모리에 공간을 확보하고 그 공간에 변수명이라는 이름표를 달아주는 것이다.
2.변수를 초기화한다는 것은 확보한 공간에 자동으로 undefined(정의되지않은)값을 할당해주는 것이다.
3.변수에 값을 할당한다는 것은 확보되고 초기화된 공간에 실제로 사용할 값을 넣어주는 것이다.
변수를 선언하기 위해서는 let 또는 const키워드를 사용한다.
let키워드를 사용해 선언한 변수는 재할당이 가능하며, const키워드를 사용해 선언한 변수는 재할당이 불가능하다.
//단순히 변수를 선언하는 문장
let x;
//선언된 변수에 10이라는 값을 할당해주는 문장
x=10;
//y라는 변수를 선언하고 값까지 할당하는 문장
let y=10;
//선언된 변수에 다른타입의 값도 할당이 가능하다.
y='Hello!';
y=true;
//const로 선언된 변수는 재할당이 불가능하다.
const z=10;
z=20; // Error발생
변수에 값을 할당할 때에는 =(할당연산자)를 사용한다.
자바스크립트는 변수를 선언할 때 타입을 지정하지 않는다.
값이 할당되는 과정에서 자동으로 변수의 타입이 결정된다.(타입추론)
타입을 따로 지정하지 않으므로 같은 변수에 여러가지 타입의 값을 할당할 수 있다.
자바스크립트의 데이터타입의 종류는 다음과 같다.
number: 숫자를 표현하는 data type으로 int,float 구분이 없다.
string: 문자열을 표현하는 data type, 큰따옴표("") 혹은 작은따옴표('')사이에 텍스트를 넣어 생성한다.
boolean: 논리적 참과 거짓을 나타내는 true와 false를 표현하는 data type이다.
undefined: 선언이후 값이 할당되지 않은(정의되지) 변수를 초기화할때 사용되는 data type이다.
null: 의도적으로 변수에 값이 없다는 것을 명시하기 위해 사용하는 data type이다.
객체타입(object): 위의 5가지 data type을 제외한 모든 값들을 포함한다(ex. 배열,함수 등등...)
함수는 특정 작업을 수행하기 위한 문장들의 집합(기능의 단위)이다.
함수는 객체(object)이며 변수에 할당이 가능하다.
//함수를 생성하는 문법
function 함수이름(인자1,인자2,....){
특정작업을 수행하기 위한 문장들...
}
수업을 들으며 함수를 생성하는 다양한 방법을 배웠다.
다음은 여러가지 방법으로 어떤 수(num)을 받아 그 수의 제곱을 반환하는 함수를 생성하는 코드이다.
//함수선언문
function square1(num){
return num*num;
}
//함수표현식
let square2 = function(num){
return num*num;
}
//화살표함수
let square3 = (num) => {return num*num;}
//Function 생성자함수
let square4 = new Function('num','return num*num')
square1(4) // ->16
square2(4) // ->16
square3(4) // ->16
square4(4) // ->16
다른 프로그래밍 언어의 조건문과 크게 다르지 않았다.
//조건문이 참이라면 중괄호안의 실행할 문장을 실행한다.
if(조건문){
실행할 문장...
}
if(조건문1){
실행할 문장....
}
else if(조건문2){
실행할 문장...
}
.
.
.