
apply함수 기본적인 함수 호출방법 function func(){ } func(); function sum(arg1, arg2){ return arg1+arg2; } alert(sum.apply(null, [1,2])) // 3 함수 sum은 Function 객체의 인스턴스다. 그렇기 때문에 객체 Function 의 메소드 apply를 호출 할 수 있다. apply 메소드는 두개의 인자를 가질 수 있는데, 첫번째 인자는 함수(sum)가 실행될 맥락이다. 맥락의 의미는 다음 예제를 통해서 살펴보자. 두번째 인자는 배열인데, 이 배열의 담겨있는 원소가 함수(sum)의 인자로 순차적으로 대입된다. Function.call은 사용법이 거의 비슷하다. o1 = {val1:1, val2:2, val3:3}//객체..

arguments 함수에는 arguments라는 변수에 담긴 숨겨진 유사 배열이 있다. 이 배열에는 함수를 호출할 때 입력한 인자가 담겨있다. arguments는 함수안에서 사용할 수 있도록 그 이름이나 특성이 약속되어 있는 일종의 배열이다. arguments[0]은 함수로 전달된 첫번째 인자를 알아낼 수 있다. 또 arguments.length를 이용해서 함수로 전달된 인자의 개수를 알아낼 수도 있다. 이러한 특성에 반복문을 결합하면 함수로 전달된 인자의 값을 순차적으로 가져올 수 있다. 그 값을 더해서 리턴하면 인자로 전달된 값에 대한 총합을 구하는 함수를 만들 수 있다. function sum(){ var i, _sum = 0; for(i = 0; i < arguments.length; i++){ ..

내부함수 자바스크립트는 함수 안에서 또 다른 함수를 선언할 수 있다. function outter(){ function inner(){ var title = 'coding everybody'; alert(title); } inner(); } outter(); //coding everybody 위의 예제에서 함수 outter의 내부에는 함수 inner가 정의 되어 있다. 함수 inner를 내부 함수라고 한다. 내부함수는 외부함수의 지역변수에 접근할 수 있다. function outter(){ var title = 'coding everybody'; function inner(){ alert(title); } inner(); } outter(); // coding everybody 클로저 클로저(closur..

함수의 용도 JavaScript에서는 함수도 객체다. 다시 말해서 일종의 값이다. 거의 모든 언어가 함수를 가지고 있다. JavaScript의 함수가 다른 언어의 함수와 다른 점은 함수가 값이 될 수 있다. function a(){} //함수 a는 변수 a에 담겨진 값이다. a = { b:function(){ } }; //함수 a는 변수 a에 담겨진 값이다. 또한 함수는 객체의 값으로 포함될 수 있다. 이렇게 객체의 속성 값으로 담겨진 함수를 메소드(method)라고 부른다. 함수는 함수의 리턴 값으로도 사용할 수 있다. function cal(mode){ var funcs = { 'plus' : function(left, right){return left + right}, 'minus' : functi..

전역변수와 지역변수 유효범위(Scope)는 변수의 수명을 의미한다. var vscope = 'global'; function fscope(){ alert(vscope); } fscope(); //global 함수 밖에서 변수를 선언하면 그 변수는 전역변수가 된다. 전역변수는 에플리케이션 전역에서 접근이 가능한 변수다. 다시 말해서 어떤 함수 안에서도 그 변수에 접근 할 수 있다. 그렇기 때문에 함수 fscope 내에서 vscope를 호출 했을 때 함수 밖에서 선언된 vscope의 값 global이 반환된 것이다. var vscope = 'global'; function fscope(){ var vscope = 'local'; alert('함수안 '+vscope); } fscope(); alert('함수밖..

객체(Object) 배열은 연관되어 있는 데이터들을 담아내기 위한 일종의 그릇으로서, 객체와 배열은 유사하다. 배열은 a:0, b:1, c:2 이런식으로 자동할당 되지만, 객체는 a:first, b:second, c:third 등 인덱스를 문자로 사용하고싶을때에는 객체를 사용해야 한다. 배열 = []; / 객체 = {}; var grades = {'eging':10, 'k8805':6, 'sorialgi':80}; 이 경우에는 egoing, k8805가 key값이고 10이 value(element)값이 된다. var grades = {}; grades['egoing'] = 10; grades['k8805'] = 6; grades['sorialgi'] - 80; //둘은 같은 객체 선언이다 var grad..

배열(Array) 배열은 연관되어 있는 데이터들을 담아내기 위한 일종의 그릇으로, 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러개의 데이터를 하나의 변수에 저장하기 위한 것이라고 할 수 있다. 배열은 []; 대괄호로 열고 대괄호로 닫아야 한다. 배열의 생성 여러개의 데이터를 하나의 변수에 담아서 관리하고 싶을때에 배열을 사용하면 된다. ; var member = ['egoing', 'k8805', 'sorialgi'] 이 경우에는 egoing, k8805가 key값이고 10이 value(element)값이 된다. 배열에 담겨있는 값을 가져올 때에는 대괄호 안에 숫자를 넣는다. INDEX라고 부르고 0부터 시작된다.egoing을 가져오려면 [0];이라고 해줘야한다. alert(member[0]..

함수(fuction) 함수란 하나의 로직을 재실행 할 수 있도록 하는것으로 코드의 재 사용성을 높여준다. function 함수명( [인자...[,인자]] ){ 코드 return 반환값 } 함수의 정의와 호출 함수는 fucntion 뒤에 함수의 이름과 ()괄호가 같이한다. 소괄호에 인자라는 값이 들어올때, 이 값은 함수를 호출할 때 함수의 로직으로 전달될 변수이다. 함수를 호출 했을때 실행하게 될 부분이 중괄호 {}안에 들어온다. function numbering(){ i = 0; while(i < 10){ document.write(i); i += 1; } } numbering(); //결과 0123456789 numbering(); 을 실행하여서 결과값이 0부터 9까지 도출되었다. 함수의 효용 함수의 ..

반복문 while while (조건){ 반복해서 실행할 코드 } while(true){ document.write('coding everybody '); } //결과 coding everybody hile(false){ document.write('coding everybody '); } //아무결과도 출력되지 않는다. while문은 뒤에 따라오는 괄호 안의 조건이 true면 중괄호안의 구간을 반복적으로 실행한다. 조건이 false면 반복문이 실행되지 않는다. true를 잘못 사용하면 무한반복의 굴레에 빠진다. 반복 조건 var i = 0; // 종료조건으로 i의 값이 10보다 작다면 true, 같거나 크다면 false가 된다. while(i < 10){ // 반복이 실행될 때마다 coding every..