자바스크립트,제이쿼리
-
즉시 실행 함수, 내부 함수자바스크립트,제이쿼리 2019. 11. 15. 00:12
즉시 실행 함수 (function (name) { console.log('this is the immediate function -> ' + name); })('foo'); 괄호 안에 값을 추가해 즉시 실행 함수의 인자로 넘길 수가 있다. 예제의 경우는 ('foo')로 즉시 실행 함수를 호출했으며, 이떄 ''foo'를 인자로 넘겼다, 이 값은 앞 예제 즉시 실행 함수의 name 매개변수로 넘겨지게 된다. 즉시 실행 함수의 경우에는 같은 함수를 다시 호출할 수 없다. 따라서 즉시 실행 함수의 이러한 특징을 이용하낟면 최조 한 번의 실행만을 필요로 하는 초기화 코드 부분 등에 사용할 수 있다. 즉시 실행 함수는 자바스크립트 라이브러리나 프레음워크 소스들에서 사용되는데 이유는 자바스크립트의 변수 유효 범위 특..
-
-
자바스크립트 프로토타입자바스크립트,제이쿼리 2019. 10. 18. 16:08
참고 [Javascript ] 프로토타입 이해하기 자바스크립트는 프로토타입 기반 언어라고 불립니다. 자바스크립트 개발을 하면 빠질 수 없는 것이 프로토타입인데요. 프로토타입이 거의 자바스크립트 그 자체이기때문에 이해하는 것이 어렵고 개념도 복잡합니다. medium.com 클래스가 없는 객체지양언어 자바스크립트 자바스크립트는 자바와 같은 객체지향언어입니다. 하지만 JS에는 클래스가 없고 프로토타입이라는 것이 존재합니다. 클래스가 없으니 상속기능이 없지만 프로토타입으로 상속을 흉내내도록 구현되어있습니다. 프로토타입의 사용 자바스크립트에는 클래스가 없지만 함수(function)와 new를 통해 클래스를 비슷하게 흉내낼 수 있습니다. function Person() { this.eyes = 2; this.nos..
-
자바스크립트 프라미스자바스크립트,제이쿼리 2019. 10. 16. 00:28
프라미스는 콜백의 단점을 해결하려는 시도 속에서 만들어졌습니다. 프라미스가 콜백을 대체하는것은 아닙니다. 사실 프라미스에서도 콜백을 사용합니다. 프라미스는 콜백을 예측 가능한 패턴으로 사용할 수 있게 하며 프라미스 없이 콜백만 사용했을 때 나타날 수 있는 엉뚱한 현상이나 찾기 힘든 버그를 상당수 해결합니다. 프라미스의 기본 개념은 간단합니다. 프라미스 기반 비동기적 함수를 호출하면 그 함수는 Promise 인스턴스를 반환합니다. 프라미스는 성공(fulfiled)하거나, 실패(rejected)합니다. 프라미스가 성공하거나 실패하면 그 프라미스를 결정(settled)됐다고 합니다. 프라미스는 객체이므로 어디든 전달할 수 있다는 점도 콜백에 비해 간편한 장점입니다. 비동기적 처리를 여기서 하지 않고 다른 함수..
-
자바스크립트 콜백자바스크립트,제이쿼리 2019. 10. 15. 23:33
콜백은 간단히 말해 나중에 호출할 함수이다. 콜백 함수도 일반적인 자바스크립트 함수일뿐입니다. 콜백 함수는 일반적으로 다른 함수에 넘기거나 객체의 프로퍼티로 사용합니다. 일반적으로 익명 함수로 사용하며 드물게는 배열에 넣어서 쓸 때도 있다. console.log("Before timeout: " + new Date()); function f() { console.log("After timeout: " + new Date()); } setTimeout(f, 6*1000); //1분 console.log("I happen after setTimeout!"); console.log("Me too!"); 초보자 입장에서 기대하는 순서와는 다르게 나올것입니다. 기대대로 된다면 좋겠지만, 그것은 비동기적이지 않습니..
-
자바스크립트 스코프자바스크립트,제이쿼리 2019. 10. 13. 01:46
정적 스코프와 동적 스코프 정적 스코프는 어떤 변수가 함수 스코프 안에 있는지 함수를 정의할 때 알 수 있다는 뜻이다. 호출할 때 알 수 있다는 것이 아니다. var x=3; function f() { console.log(x); console.log(y); } function j() { var y=2; f(); } j(); 변수 x는 함수 f를 정의할 떄 존재하지만, y는 그렇지 ㅇ낳습니다. y는 다른 함수에 존재합니다. 다른 함수에서 y를 선언하고 그 스코프에서 f를 호출하더라도, f를 호출하면 x는 그 바디안의 스코프에 있지만 y는 그렇지 않습니다. 이것이 정적 스코프입니다. 함수 f는 자신이 정의 될때 접근할 수 있었던 식별자에 접근할 수 지만, 호출할 때 스코프에 있는 식별자에 접근할 수가 없습..
-
자바스크립트 객체자바스크립트,제이쿼리 2019. 10. 7. 23:12
객체의 본질은 컨테이너입니다. 컨네이터의 내용물은 시간이 지나면서 바뀔 수 있지만, 내용물이 바뀐다고 컨테이너가 바뀌는 건 아닙니다. 즉, 여전히 같은 객체입니다. 객체에도 중괄호를 사용하는 리터럴 문법이 있습니다. 객체의 콘텐츠는 프로퍼티 또는 멤버라고 부릅니다. 프로퍼티는 이름(키)과 값으로 구성됩니다. 프로퍼티 이름은 반드시 문자열 또는 심볼이어야 하며, 값은 어떤 타입이든 상관없고 다른 객체여도 괜찮습니다. 프로퍼티 이름에 유효한 식별자를 써야 멤버 접근 연산자( . )를 사용할 수 있습니다. 프로퍼티 이름에 유효한 식별자가 아닌 이름을 쓴다면 계산된 멤버 접근 연산자를( [ ] ) 써야 합니다. 프로퍼티 이름이 유효한 식별자여도 대괄호로 접근할 수 있습니다. var obj = {}; obj.co..