JavaScript(5)
-
[JavaScript]자바스크립트_스코프 클로저
💻 핵심 클로져 함수가 속한 렉시컬 스코프를 기억하여 렉시컬 스코프 밖에서도 스코프에 접근가능하도록 해주는 기능 예제 function foo(){ var a=2; function bar(){ console.log(a); } return bar(); } var baz= foo(); baz(); //2 함수 bar()는 foo() 내부 렉시컬 스코프에 존재하고, 이 bar()는 foo() 스코프에 대한 클로저를 가집니다. 변수에 foo()를 대입하여, 반환된 bar()함수를 호출하여, bar() 를 렉시컬 스코프 외부에서 실행 💡 bar()는 foo()의 호출이 끝나더라도, 여전히 해당 스코프에 대한 참조를 가짐 : 클로저 함수는 처음 선언된 곳의 스코프에 대한 참조를 유지 👉 어디에서 해당 함수를 실행하든..
2021.08.09 -
[JavaScript]자바스크립트 호이스팅
자바스크립트는 순차적으로 코드가 실행되어 선언문 이후에 변수가 대입되어야 값을 이용할 수 있다고 생각합니다. 하지만, 컴파일러의 역할을 다시 생각해보면, 그것이 아니란 것을 알 수 있습니다. a = 2; var a; console.log( a ); // 출력 : 2 💻 컴파일러는 두번 공격한다. 자바스크립트의 컴파일레이션 단계에서 '렉시컬 스코프' : 모든 선언문을 찾아 적절한 스코프에 연결해주는 과정 var a = 2 var a; a = 2; 자바스크립트는 위 구문을 선언문과 대입문으로 나누어 처리합니다. 선언문: 컴파일레이션 단계에서 처리 대입문: 실행단계에서 처리 👉 '호이스팅' : 변수와 함수 선언문은 선언된 위치 스코프에서 최상단으로 끌어올려지는 동작 ❗ 선언문은 컴파일레이션 단계에서 처리되어,..
2021.08.03 -
[JavaScript]자바스크립트 강제변환 - 2
💻 암시적 변환 암시적 변환 : 숨겨진 형태로 일어나는 타입변환 암시적 변환이 코드를 더 복잡하고 이해하기 어렵게 많든다는 논란은아직까지도 많다고 합니다. 하지만, 교재에서는 긍정적인 관점으로 살펴보고있어 저 또한 장점을 위주로 살펴보겠습니다. 암시적 변환의 목적은 '불필요한 상세 구현을 줄이는 것'이라고 볼 수 있습니다. 👉 '암시적'이란? 예를 들어 타입변환의 의사코드를 살펴보면 아래와 같습니다. Sometype x = SomeType(AnotherType(y)) 즉, 타입이 바로 변환되는 것이 아닌 중간단계를 거치는 부분까지 표현이 되는데요, 이를 암시적으로 단순화 하여 표현 할 수있습니다. Sometype x = SomeType(y) 이렇게 작성하여 코드 가독성을 높이고, 세세한 구현부를 추상화하..
2021.07.14 -
[JavaScript]자바스크립트 네이티브
저번 포스팅에 이어서 'You Don't Know JS'교재를 이용한 자바스크립트 문법에 대해서 정리해보겠습니다. 💙 이번 포스팅으 3강 네이티브에 대한 내용입니다. 네이티브 내장 함수로 볼수 있으며, 특정 환경에 종속되지 않은, ECMAScript 명세의 내장 객체를 말합니다. 가장 많이 사용되는 네이티브로는 아래와 같이 있습니다. String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol() ❗ 네이티브를 생성자로 사용 하면, type값은 Object(원시값을 감싼 객체 래퍼 로서)를 나타낸다. var a = new String("abc"); type of a; // "Object" "String"이 아님..
2021.07.09 -
[JavaScript]자바스크립트의 타입& 값
이번 포스팅에서는 자바스크립트의 타입과 값에 대한 내용을 다뤄보겠습니다. 웹 프로그래밍을 공부하고 프로젝트를 하다보니, 자바스크립트에 대한 기초적인 부분과 깊은 내용들이 부족하다고 느껴 좀더 이론적으로 공부를 시작했습니다. 공부할 교재를 찾던 중 "You Don't Know JS"[카일 심슨] 이 교재가 유명하고 내용을 잘 다뤄놨다고 해서 공부를 시작했습니다. 💻 타입 자바스크립트는 동적언어라고 해서 타입이 없는 것이 아니라, 자바스크립트 엔진&개발자 모두가 값을 다른값과 분별할 수 있는 "고유한 내부 특성의 집합"을 뜻합니다. 1.1 타입, 그 실체를 이해하자 어떤 형태로든 거의 모든 자바스크립트 프로그램에서 강제변환이 일어나므로 타입을 확실하게 인지하고 사용하는 것이 중요합니다. 1.2 내장 타입 자..
2021.07.06