javascript
4 posts
화살표 함수의 특징

화살표 함수의 특징 화살표 함수에는 ‘this’가 없다. 화살표 함수는 this를 내부가 아닌, 외부에서 가져온다. 그렇기 때문에 다음과 같은 코드를 작성할 수 있다. 화살표 함수는 new와 함께 실행할 수 없다. 가 없기때문에, 화살표함수는 생성자 함수로 사용할 수 없다는 제약이 있다. arguments가 없다. arguments란? 일반 함수와는 다르게 모든 인수에 접근할 수 있게 해주는 유사 배열 객체를 arguments라고 한다. 참조 모던 자바스크립트 화살표 함수에는 ‘this’가 없다. 화살표 함수는 new와 함께 실행할 수 없다. arguments가 없다. 참조

클로저와 [[Environment]]

부분만이라도 읽어보세요! 클로저 핵심 요약 외부 변수를 기억하고 이 외부 변수에 접근할 수 있는 함수를 의미한다. 자바스크립트에선 모든 함수가 자연스럽게 클로저가 된다. (예외가 있긴함) 클로저의 개념 클로저는 내부 함수에서 외부 함수의 범위에 대한 접근을 제공하는 개념이다. 자바스크립트에서 클로저는 함수 생성 시 - 그렇기 때문에 다음은 mdn에서 긁어온 코드이다. 어휘적 범위 지정(렉시컬 스코프)환경을 고려해서 살펴보면.. 위의코드를 간단하게 풀어보자면, 중첩함수인 내부엔 자신만의 지역변수가 없지만 내부 함수에서 외부 함수에 접근할 수 있기 때문에 함수에 선언된 지역 변수인 name에 접근할 수 있는 것 이다. 이렇게 내부에서 외부에 접근할 수 있는것. 이것을 의 개념이다. 조금 더 깊숙히 속담에 호랑이를 잡기 위해선 호랑이 굴로 들어가야한다고 한다. 클로저라는 호랑이를 잡기위해 호랑이 굴로 들어가보자. 왜 그런걸까? 이러한 결과값에 대해서 mdn에서는 자바스크…

폴리필,바벨

폴리-필(Polyfill) 이란? 브라우저에서 지원하지 않는 코드를 사용 가능한 코드 조각이나 플러그인으로 변환한 코드를 의미한다. 즉,를 의미함. 바벨(babel) 트랜스파일러(transpiler)다. 모던 자바스크립트를 구 표준을 준수하는 코드로 변환. 웹팩(webpack)과 같은 모던 프로젝트 빌드 시스템은 코드가 수정될 때마다 자동으로 트랜스파일러를 동작시켜줌. 주요역할 트랜스파일러: 코드를 재작성함 폴리필(core js, polyfill.io) 바벨과 폴리필의 차이 바벨은 ESNext 에서 지원하는 문법을 ES5 문법으로 번역해주지만, ES5에 존재하지 않는 ES6의 Map, Promise, Set, Object.assigin() 이런애들은 존재하지 않으니 번역을 해줄수가 없다. 이것을 매꾸기 위해 polyfill 을 사용한다. (Map, Promise, Set 등을 사용가능한 객체로 만들어준다) babel 은 babel-polyfill 모듈을 사용하면 되지만, 현재 de…

자바스크립트란?

웹페이지에 생동감을 불어 넣기 위해 만들어진 프로그래밍 언어 자바스크립트로 작성한 프로그램을 script 라고 불림 script는 웹페이지의 HTML 안에 작성 가능한데, 웹페이지를 불러올 때 script가 자동으로 실행 됨 자바스크립트 동작 환경 자바스크립트는 브라우저뿐만 아니라 서버에서도 실행 할 수 있다. 이 외에도 자바스크립트 엔진이라 불리는 특별한 프로그램이 있는 모든 디바이스에서도 동작한다. 의 종류는 다양하다. ex) V8(Chrome과 Opera에서 사용), SpiderMonkey(Firefox에서 사용), IE 기타 등등.. 엔진은 어떻게 동작할까? 엔진의 기본 원리는 다음과 같다. 파싱: 엔진이 스크립트를 읽는 단계 컴파일: 읽어 들인 스크립트를 기계어로 전환하는 단계 실행: 기계어로 전환된 코드가 실행되는 단계, 기계어로 전환되었기에 실행 속도 빠름 자바스크립트의 강점 HTML/CSS와 완전히 통합할 수 있음 간단한 일은 간단하게 처리할 수 있게 해줌 모든 …