rootbox rootbox.co.kr

17May/120

[js스터디] 과제 #5

과제가 진행이 될수록 한명 두명 과제 제출을 안하기 시작하는군요. 흑흑..
이번 과제까지 진행한 후에 오프 스터디를 한번 하도록 하겠습니다.

이번 과제는 배열입니다. 스터디때 너무 짧게 설명을 했기 때문에 맛만 보겠습니다. ㅎ

1. 아래와 같은 배열이 있다고 할 때, 배열에 담긴 숫자의 총 합을 구하세요.

var arr = [1,2,4,10,19,219,5,99,3];

2. 1 ~ 10까지 담긴 배열을 선언하고, 배열에 담긴 숫자의 총 합을 구하세요.

3. 아래와 같이 무작위 배열을 오름차순으로 정렬하는 함수를 만드세요.

var sorted_array = sortArr([3,5,2,4,1]); // [1,2,3,4,5]

참고
Array 객체의 push 메서드 - http://www.w3schools.com/jsref/jsref_push.asp
Array 객체의 sort 메서드 - http://www.w3schools.com/jsref/jsref_sort.asp

함수의 정렬은 직접 만드셔도 되고, Array 객체의 메서드를 할용해도 됩니다.

이번 과제도 기존 과제 포함해서 제출기한은 없습니다.
오프 스터디 날 까지 제출하시거나 당일 가져오셔도 됩니다.

덧, 과제 #1~#5 까지 돌아보며 복습하는 오프스터디를 예정하고 있습니다. 기존 스터디 멤버가 아니어도 참여가능하니 많은 관심 부탁드립니다.

17May/122

[js] canvas로 만든 그림판

canvas에 대해서 이것저것 살펴보다가 만들어보게 되었습니다.
책을 하나 구매했는데 표지만 3일째 보고있네요. 책만 자꾸 사고 정작 표지만 보고있는 이런... (디..디아블로를 욕해봅니다.)

코드가 너무 허접해서..
좀 더 손보고 주석도 달고 해서 그림판 만들기를 연재해볼까.. 라고 생각만..

덧, 아우.. wp가 html 모드로 글을 작성하면 자기 멋대로 태그를 막 집어넣네 ㅠ..

9May/122

[js] 변수 끌어올림 (Hoisting)

원래 오늘 포스팅 예정이던 유용성 없어보이는 스크립트가 있었는데.. 지인이 보내준 흥미로운 글에 답을 하나씩 달다가 이 글을 작성하게 되었습니다.

블로그 포스팅 소스가 될만한 질문들이 아주아주아주아주 많아서 정말 좋네요. ㅠ
제가 아는 수준에서 하나 둘 정리해서 올리겠습니다. 인터뷰하러 가실 때 참고하시라고.. ㅎ

오늘은 javascript 의 Hoisting 즉, 끌어올림에 대해서 다뤄보겠습니다.

1
2
3
4
5
6
7
8
var job = "web publisher";
function say() {
    console.log(job);
    var job = "ui developer";
    console.log(job);
};
 
say();

​3번째와 5번째줄에서는 과연 뭐라고 나올까요?
3번째 줄에선 "web publisher" 라고 나오고 5번째 줄에서는 "ui developer" 라고 나올거라 예상하셨다면 "땡" 입니다.

위 코드를 다시 작성해 볼까요?

1
2
3
4
5
6
7
8
9
var job = "web publisher";
function say() {
    var job;
    console.log(job);
    job = "ui developer";
    console.log(job);
};
 
say();

이 코드의 결과를 예상한다면 어떠신가요? "undefined" 와 "ui developer" 가 예상되셨나요?
그럼 첫번째 코드와 같은 결과를 보여주는군요?

첫번째 코드는 실제로 두번째 코드처럼 해석되고 실행되어지기 때문에 두 코드의 결과가 같게 나오는 것이고,
바로 이런 현상을 Hoisting(끌어올림) 이라고 합니다.

function 스코프에서 var 로 선언된 모든 변수는 해당 스코프의 최상단으로 변수의 선언만 끌어올려지게 됩니다. 그렇기 때문에 변수의 값이 할당되지 않은 상태가 되어 undefined 라는 결과를 내어놓게 되는 것입니다.

덧, 스코프에 대한 내용은 제 블로그의 스코프에 대한 포스팅을 참고해주세요.