자바 스크립트의 기초에 대해 공부했다. 변수, 변수의 타입, 함수, 조건문, 반복문을 학습하고 HTML의 기본 구조에 대해서도 조금 공부하였다.
작년 컴퓨터공학부를 1년 복수전공으로 공부했던 시간 덕에 공부하면서 당장 어려운 점은 없었기에 개인적으로 공부하고 있던 안드로이드 개발 공부를 병행할 수가 있었다. 여러가지 문제를 풀면서 문제의 난이도가 빠르게 어려워지는 것이 체감이 되었고 코딩이 처음이었던 페어에게는 굉장히 버거운 시간이었을 수도 있겠다는 생각이 들었다. 과정이 진행되면서 모르는 내용이나 부족한 부분을 학습하게 될 때 더 많은 노력이 필요하겠다는 생각이 들었다.
항상 혼자서 코딩을 했었는데 다른 사람과 소통을 하며 코딩을 한 경험은 이번이 처음이었다. 그렇기 때문에 어떤 방식으로 소통을 해야하는지에 대해 많은 고민을 하게 된 시간이었다. 우선 나는 어느 정도의 배경지식이 있었고 페어는 코딩이 처음인 사람이었다. 때문에 네비게이터의 역할과 드라이버의 역할을 정하고 최대한 수행하려 노력했지만 그 경계가 모호해지는 경우가 계속 발생했다. 그렇지만 페어와 본인 모두 최선을 다해 역할을 수행하려 노력했고 모두에게 의미있던 시간이었을 것 같다는 생각이 들었다. 앞으로 개발자의 길을 걷게 된다면 내 코드의 기능을 코딩을 아예 모르는 사람에게 설명해야할 일이 있을 수 있으니 이런 경험도 뜻깊은 경험인 것 같다.
let word = returnWordWithJoy('I love coding');
function returnWordWithJoy(word) {
if (typeof word !== 'string') {
return 'wrong type';
} else {
return word + '!';
}
}
주로 c언어를 사용했고 자바스크립트에 대해 잘은 몰랐어서 위의 코드에서 함수를 호출하지 못 할 것이라고 생각을 했고 자바스크립트에서 호이스팅이란 개념에 대해 처음 알게 되었다. 자바스크립트를 처음 배웠을 때는 var라는 키워드를 사용했었는데 let이라는 키워드를 사용하길래 차이에 대해 궁금했는데 호이스팅을 통해 그 차이에 대해서도 알게 되었다.
함수 안에 있는 선언들을 해당 함수 유효 범위의 최상단에 선언하는 것
console.log('hi');
var x = 'x';
let y = 'y';
가령 이러한 코드가 있다고 했을 때, javascript는 프로그램 실행 전에 코드를 쭉 훑어 var 키워드를 사용한 선언은 최상단으로 끌어올려 선언을 한다.
var x;
console.log('hi');
x = 'x';
let y = 'y';
그 결과로 위의 코드와 동일한 수행과정을 겪는다. 함수 선언식과 함수 표현식에서도 호이스팅이 적용이 되고, 호이스팅에는 할당하는 부분은 끌어올리지 못 하기 때문에 함수 표현식을 사용할 때는 주의할 필요가 있다.