본문은 JavaScript 언어에 대한 이해를 높이기 위해 "You Don't Know JS(카일 심슨 저)"를 읽고 공부한 내용을 정리한 글입니다. 공부가 목적이기 때문에 필요에 따라 생략이나 수정, 추가된 부분이 있을 수 있습니다. 클로저란? MDN은 다음과 같이 클로저를 정의하고 있다. 클로저는 함수와 함수가 선언된 어휘적 환경(렉시컬 환경)의 조합이다. 클로저를 이해하려면 자바스크립트가 어떻게 변수의 유효범위를 지정하는지(Lexical scoping)를 먼저 이해해야 한다. 클로저는 자바스크립트 고유의 개념이 아니라 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어(Functional Programming language: 얼랭(Erlnag), 스칼라(Scala), 하스켈(Haskell), 리스..
본문은 JavaScript 언어에 대한 이해를 높이기 위해 "You Don't Know JS(카일 심슨 저)"를 읽고 공부한 내용을 정리한 글입니다. 공부가 목적이기 때문에 필요에 따라 생략이나 수정, 추가된 부분이 있을 수 있습니다. 1. 호이스팅이란? 자바스크립트는 모든 선언(var, let, const, function, functiton*, class)을 호이스팅한다. 다소 생소한 용어인데, 먼저 네이버 사전의 정의를 보면 다음과 같이 나와있다. hoisting (n.) 1. 끌어 올리기; 들어올려 나르기. 자바스크립트에서 호이스팅(Hoisting)이란 변수와 함수의 선언문을 해당 스코프의 꼭대기로 끌어올리는 동작을 의미한다. 이 과정에서 선언문 자체는 옮겨지지만, 함수 표현식의 대입문을 포함한 ..
본문은 JavaScript 언어에 대한 이해를 높이기 위해 "You Don't Know JS(카일 심슨 저)"를 읽고 공부한 내용을 정리한 글입니다. 공부가 목적이기 때문에 필요에 따라 생략이나 수정, 추가된 부분이 있을 수 있습니다. 1. 스코프란? 스코프는 참조 대상 식별자(identifier, 변수/함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다. 자바스크립트는 이 규칙대로 식별자를 찾는다. 2. 스코프의 구분 자바스크립트의 스코프는 다음과 같이 2가지로 나뉜다. 1. 전역 스코프 (Global Scope) 프로그램 내 어디에서나 참조할 수 있다. 2. 지역 스코프 (Local Scope or Function-Level Scope) 함수 ..
본문은 JavaScript 언어에 대한 이해를 높이기 위해 "You Don't Know JS(카일 심슨 저)"를 읽고 공부한 내용을 정리한 글입니다. 공부가 목적이기 때문에 필요에 따라 생략이나 수정, 추가된 부분이 있을 수 있습니다. 1. 문과 표현식 const a = 3 * 6; const b = a; b; 1) 3 * 6, a, b -> 표현식 2) const a = 3 * 6, const b = a -> 선언문(Declaration Statetment) 3) a = 3 * 6, b = a -> 할당 표현식(Assignment Expression) 모든 문은 완료 값(Completion Value)을 가진다. 이는 브라우저 개발자 콘솔 창에서 쉽게 확인할 수 있다. 콘솔 창은 가장 최근에 실행된 문..
1. 숫자 판별 - isdecimal( ), isdigit( ), isnumeric( ) 보통 isdigit( )을 가장 많이 쓴다. s = "28212" print(s.isdigit())# True # contains alphabets and spaces s = "Mo3 nicaG el l22er" print(s.isdigit())# False 셋 다 숫자 판별에 쓰이는 함수이다. 무슨 차이일까? isdecimal( ) ⊆ isdigit( ) ⊆ isnumeric( ) isdecimal( ): 어떤 문자열이 int형으로 변환이 가능하면 True를 반환한다. isdigit( ): 어떤 문자열이 숫자의 형태면 True를 반환한다. (예: 3², ², ..) isnumeric( ): 숫자값 표현에 해당하는 ..