Programming/JAVASCRIPT
-
[JAVASCRIPT] 실행 컨텍스트와 클로저(1)Programming/JAVASCRIPT 2019. 12. 4. 17:44
실행 컨텍스트 개념 * 실행 컨텍스트 - > 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념 콜 스택과 연관하여 정의하면, "실행 가능한 자바스크립트 코드 블록이 실행되는 환경" -> 대부분 프로그래머는 함수로 실행 컨텍스트 만듬 ex) console.log("This is global context"); function ExContext1() { console.log("This is ExContext1"); }; function ExContext2() { ExContext1(); console.log("This is ExContext2"); }; ExContext2(); (출력) This is global context This is ExContext1 This is ExCont..
-
[JAVASCRIPT] 함수와 프로토타입 체이닝(3)Programming/JAVASCRIPT 2019. 12. 4. 17:43
call과 apply 메서드를 이용한 명시적인 this 바인딩 * call() 메서드는 apply() 메서드와는 기능이 같음 단지 넘겨받는 인자의 형식만 다름 * apply() 메서드도 this를 특정 객체에 바인딩할 뿐 결국 본질적인 기능은 함수호출 -> 만약 Person() 이라는 함수가 있고, Person.apply() 호출하면 기본적인 기능은 Person() 함수 호출 function.apply(thisArg, argArray) -> 첫 번째 thisArg는 apply() 메서드를 호출한 함수 내부에서 사용한 this에 바인딩할 객체를 가리킴 -> 두 번째 argArray 인자는 함수를 호출할 때 넘길 인자들의 배열을 가리킴 ** 두 번째 인자인 argArray 배열을 자신을 호출한 함수의..
-
[JAVASCRIPT]함수와 프로토타입 체이닝(2)Programming/JAVASCRIPT 2019. 12. 4. 17:43
함수 호출과 this arguments 객체 자바스크립트는 함수를 호출할 때 함수 형식에 맞춰 인자를 넘기지 않더라도 에러가 나지 않음 ex) 함수 형식에 맞춰 인자를 넘기지 않더라도 함수 호출 가능 코드 function func(arg1, arg2) { console.log(arg1, arg2); } func(); // (출력) undefined undefined func(1); // (출력) 1 undefined func(1, 2); // (출력) 1 2 func(1, 2, 3); // (출력) 1 2 * 만약 C를 이런 방식으로 코딩하면 바로 에러를 내며 프로그램 종료 * 이러한 자바스크립트의 특성 때문에 함수 코드 작성시, 런타임 시에 호출된 인자의 개수를 확인하고 이에 따른 동작을 다..
-
[JAVASCRIPT] 함수와 프로토타입 체이닝(1)Programming/JAVASCRIPT 2019. 12. 4. 17:42
함수 정의 함수 리터럴 ex) 함수 리터럴을 통한 add() 함수 정의 // 함수 선언문 function add(x, y){ return x + y; } 함수 선언문 방식으로 함수 생성 * 함수 선언문 방식으로 정의된 함수는 반드시 함수명이 정의되어 있어야함 함수 표현식 방식으로 함수 생성 // add() 함수 표현식 var add = function(x, y) { return x + y; }; var plus = add; console.log(add(3, 4)); // (출력) 7 console.log(plus(5, 6); // (출력) 11 * 익명함수 - 이름이 없는 함수 형태 // 함수 표현식 방식으로 구현한 팩토리얼 함수 ex) var factorialVar = ..
-
[JAVASCRIPT] 데이터 타입과 연산자(3)Programming/JAVASCRIPT 2019. 12. 4. 17:42
유사 배열 객체 일반 객체에 length라는 프로퍼티가 있으면 어떻게 될까? length 프로퍼티를 가진 객체를 유사 배열 객체 라고 함 ! 객체임에도 자바스크립트의 표준 배열 메서드를 사용하는 게 가능!!!! var arr = ['bar']; var obj = { name : 'start', length : 1 }; arr.push('baek'); console.log(arr); // (출력) ['bar', 'baek'] obj.push('baek'); // (출력) error 유사 배열 객체에서 apply()를 사용하면 객체지만 표준 배열 메서드 활용 가능 ex) var arr = ['bar']; var obj = { name : 'start', length : 1 }; arr...
-
[JAVASCRIPT] 데이터 타입과 연산자(2)Programming/JAVASCRIPT 2019. 12. 4. 17:41
참조 타입의 특성 객체비교 동등 연산자 (==)를 사용하여 두 객체를 비교할 때도 객체의 프로퍼티 값이 아닌 참조값을 비교! var a = 100; var b = 100; var objA = {value: 100}; var objB = {value: 100}; var objC = objB; console.log (a == b); // (출력) true console.log(objA == objB); // (출력) false console.log(objB == objC); // (출력) true *objB와 objC는 같은 객체를 참조하므로 true! objA와 objB는 다른 객체를 참조하므로 false! 참조에 의한 함수 호출 방식 var a = 100; var objA =..
-
[JAVASCRIPT] 데이터 타입과 연산자(1)Programming/JAVASCRIPT 2019. 12. 4. 17:41
자바스크립트의 데이터 타입 1) 기본타입 - 숫자(Number) - 문자열(String) - 불린값(Boolean) - undefined - null 2) 참조타입 - 객체(Object) -> 배열(Array) -> 함수(Function) -> 정규표현식 Javascript는 var라는 한 가지 키워드로만 변수 선언. typeof로 변수 타입 확인가능 ex) var intNum = 10; // 정수 var floatNum = 0.1; // 실수 var boolVar = true; // 불린 var emptyVar; // undefined var nullVar = null; // null typeof intNum; typeof floatNum; typeof boolVar ; typeof em..