Javascript
-
모듈Javascript 2024. 2. 28. 19:21
모듈은 하나의 파일입니다. 모듈은 자신만의 스코프(유효범위)가 있기 때문에 import, export 으로 기능 공유를 하지 않는 경우에는 다른 스크립트에서 접근할 수 없습니다. 항상 엄격모드로 실행됩니다. 모듈(파일) 내의 코드는 단 한 번만 실행되며 모든 모듈은 서로 공유됩니다. 브라우저에서 import, export와 같은 지시자를 사용하려면 같은 속성이 필요합니다. 지연 실행됩니다 : HTML 화면이, 문서가 완전히 만들어진 이후에 실행됩니다. 인라인 모듈 스크립트도 비동기 처리가 가능합니다. 외부 오리진에서 스크립트를 불러오려면 CORS 헤더가 있어야합니다. (CORS 헤더란? -> 다른 도메인에 있는 리소스에 대한 액세스 권한을 제어하기 위한 메커니즘, 보안정책, HTTP헤더의 일종) 중복된 ..
-
제너레이터Javascript 2024. 2. 28. 17:29
제너레이터 함수 값이 아닌 객체를 반환하는 함수 function* 이렇게 function 옆에 * 를 붙여서 사용 한다. for..of를 사용해서 모든 값이 출력되길 원한다면 마지막 반환 값을 return 이 아닌 yield로 반환해야한다. 이터러블 객체 대신 제너레이터를 사용 할 수 있다. 이터레이터를 쉽게 구현하기 위해서 제너레이터가 만들어짐. 제너레이터 컴포지션 제너레이터 안에 yield*를 사용해서 다른 제너레이터를 넣을 수 있게 해주는 기능이다. yield를 사용해 제너레이터 안, 밖으로 정보 교환하기 yield*을 사용해야지만 객체가 아닌 값을 반환해줌 async 이터레이터와 제너레이터 우선 iterable 객체라는건 반복 가능한 배열을 일반화한 객체이다. -> for..of 반복문을 적용할 ..
-
프라미스와 async, awaitJavascript 2024. 2. 16. 15:48
* try...catch 구문과 Promise는 다른 접근 방식입니다. -> try...catch 구문은 동기 코드에서 예외를 처리하는 데 사용. -> Promise는 주로 비동기 코드에서 사용됨. 비동기 작업이 완료되었을 때나 실패했을 때 처리를 할 수 있도록 함. 콜백 콜백함수 : 나중에 호출할 함수 비동기(asynchronous) 동작을 스케줄링 할 수 있다 -> 원하는 때에 동작이 시작하도록 할 수 있다는 뜻. 콜백 속 콜백 순차적으로 스크립트를 불러오고 싶을 때 : 콜백 함수 안에서 두번째 함수를 호출하기 에러 핸들링 에러를 먼저 처리하는 방식이 흔히 사용됨(오류 우선 콜백) 콜백 지옥 콜백이 밑으로 계속 쌓이는것 (당연히 좋지 않다) -> 각 동작을 독립적인 함수로 만들어서 사용해야한다. 프라..
-
클래스Javascript 2024. 2. 13. 18:40
클래스 함수의 한 종류 클래스 안에 들어가는 값들은 프로퍼티라고 부름 인스턴스 만들어서 '인스턴스이름.메서드()' -> 이렇게 호출하면 객체가 생성됨. 순수 함수로 클래스 역할을 하는 함수를 선언하는 방법과 class 키워드를 사용하는 방법의 차이점 -> 내부 프로퍼티인 [[IsClassConstructor]]: true가 이름표처럼 붙습니다. -> 클래스에 정의된 메서드는 열거할 수 없습니다(non-enumerable). -> 항상 엄격모드로 실행됨 losing this - 함수 바인딩에서도 나옴 해결책: setTimeout(() => button.click(), 1000) 같이 래퍼 함수를 전달하기 생성자 안 등에서 메서드를 객체에 바인딩하기 coustructor - 생성자 클래스 객체의 초기화: 생..
-
콜백함수란(callback)Javascript 2023. 2. 9. 20:28
콜백함수란 -> 함수의 인수로 사용되어지는 또다른 함수. 예를 들어서 우리가 알고 있는 인수(argument)는 function getName(x, y){ } getName(x, y)에서 x 또는 y이다. 위에 정의 처럼 '인수로 사용되어지는 함수'는 '콜백함수'라고도 불리며 getName에서 x는 '인수argument' 임과 동시에 별도의 개별 함수인 것이다. 그 개별 함수를 getName이 받는 인수로도 사용한것. 이걸 이해하는데 꽤나 오랜 시간이 걸렸다.. * 근데 또 callback은 콜백지옥이라는 말이 있을 정도로 if, else로 떡칠이 되어서 코드가 지저분해질 뿐더러 유지보수가 힘들다는 단점이 있다. 그래서 나온 대안으로는 비동기 방법인 async, await async(비동기) -- awa..
-