본문 바로가기
반응형

프로그래밍87

자바스크립트 핵심 개념 : 함수스코프와 실행컨텍스트 1. 함수스코프와 실행컨텍스트 함수스코프가 무엇일까? scope는 범위, 영역정도로 해석되는데 즉,"변수의 유효범위"라고 할 수 있다. 변수는 전역변수, 지역변수로 나뉘는데 전체적인 변수, 지역적인 변수라고 의미만 대략알고 밑의 예제를 보면 확실하게 이해할 수 있다. 실행컨텍스트는 무엇일까? context는 문맥, 맥락이라는 의미로 즉, 실행이 되는 코드 덩어리(맥락)라고 할 수 있다. 그런데 뭘 구분한 코드 덩어리일까? 바로 함수이다. 즉, 다시 말해 "실행이 되는 함수 코드 덩어리"라고 표현해볼 수 있다. 실행컨텍스트의 특징은 "호이스팅이 일어나고, 함수가 실행될 때 열린다는 것"이다. (this 바인딩하는 것도 특징인데 이건 this를 끝내고 다시 보기로) 하지만 이 개념은 좀 추상적이라 다시 봐도.. 2020. 12. 18.
자바스크립트 핵심 개념 : 함수선언문과 함수표현식 1. 함수선언문과 함수표현식 함수를 표현해내는 방법은 이렇게 세 가지가 있다. function a() { // 함수선언문 return 'a'; } var b = function bb() { // 기명 함수표현식 return 'bb'; } var c = funtion() { // (익명) 함수표현식 return 'c'; } 이름을 보면 대략 어떤 느낌인지 감이 오는 것 같다. 함수선언문은 할당한게 없이 그냥 정말 선언만 한 형태이고, 기명 함수표현식은 할당을 하고 함수에 이름이 있어서 기명(named)라는 표현을 쓰는 것 같다. 익명 함수표현식은 할당을 했지만 함수에 이름이 없는 형태이다. 지금은 익명 함수표현식을 써도 변수명을 함수명으로 지정해주기 때문에 기명 함수표현식을 쓰는 경우는 별로 없다고 한다... 2020. 12. 16.
자바스크립트 핵심 개념 : 호이스팅 1. 호이스팅은 뭔가를 끌어올린다. hoisting은 끌어올린다는 의미를 가지고 있다. 자바스크립트에서 호이스팅은 과연 무엇을 끌어올릴까? 바로 변수'선언'을 끌어올리고, 함수'선언'을 끌어올린다. 2. 그 이론을 눈으로 확인하고 외우자. console.log(a()); console.log(b()); console.log(c()); function a() { // 함수선언문 return 'a'; } var b = function bb() { // 함수표현식 return 'bb'; } var c = function() { // 함수표현식 return 'c'; } 호이스팅은 '선언'과 관련된 개념이라 자바스크립트 엔진은 이런 식으로 코드가 올라왔을때 족집게처럼 '선언'을 발견하면 딱 찝어서 위로 끌어올린다.. 2020. 12. 16.
자바스크립트 핵심 개념 : 데이터 타입 기본형/참조형 1. 자바스크립트의 데이터 타입은 두 가지 종류이다. Primitive type(기본형) : Number, String, Boolean, null, undefined (+ES6 symbol) Reference type(참조형) : Object (Array, Function, RegExp) 참고로 이전 글에서 자바스크립트는 값에는 타입이 있으나, 변수에는 타입이 없다. 라는 명언을 되새기자! var a = 10; 같은 애들이 기본형 var obj = {a:1, b: 2}; 같은 애들이 참조형(a:1, b:'b'는 참조형 데이터이다. 이들은 키,밸류로 묶여있다.) 뭔가 차이가 있어서 나눴을텐데 그렇다면 이 두가지의 차이가 뭘까? "기본형은 값을 그대로 할당하고, 참조형은 값이 저장된 주소값을 할당한다는 점".. 2020. 12. 16.
반응형