2025. 1. 17. 20:07ㆍJS
12장 함수 (=값으로 평가됨, 값은 객체임, 고로 함수는 객체)
function plus ( x ,y )//매개변수 {
return x + y //인수 } //반환값
plus(3,3)
plus : 함수이름
x,y 매개변수 , 인수
return 반환값
plus( ) 함수 호출
함수 사용 이유
함수를 통해 중복 제거, 코드 재사용 가능
함수 정의
function plus ( ) { } 함수 선언문
var plus = function ( ) { } 함수 표현식
var plus = (a,b) => a+b 화살표 함수
var plus = new Function ('a' ,'b', 'return a+b');
함수 선언문 표현식이 아닌 문,
function plus (x,y) {
return x +y } 를 실행하면 완료 값 undefined 출력,
표현식이라면 undefined 대신 표현식이 평가되어 생성된 함수가 출력되어야 함.
함수 선언문은 리터럴과 형태과 동일함
이름 있는 기명함수 리터럴의 경우 함수 선언문 또는 함수 리터럴 표현식으로 해석될 가능성이 있음.
호이스팅시
function plus ( ) { } 함수 선언문
var plus = function ( ) { } 함수 표현식
표현식은 var plus
선언문은 function plus ( ) { } 가 호이스팅됨.
함수 형태
즉시실행함수 ( )로 감싸는거, 재귀 함수, 중첩 함수, 콜백 함수
순수함수: 동일한 인수 값 , 동일한 값 리턴
비순수함수: 외부상태 의존하며 외부상태 변경
13장 스코프
전역스코프 // 지역 스코프
스코프 체인
지역에서 전역으로 참조는 가능하지만
전역에서 지역으로 반대는 안됨.
자바스크립트는 렉시컬 스코프를 따르므로 함수를 어디서 정의 했는지에 따라 상위 스코프를 결정.
23. 실행컨텍스트
4가지 타입(전역, 함수, eval, 모듈) 소스 코드는 실행 컨텍스트를 생성
실행컨텍스트를 표로 간단히 보려면
유튜브에 자바스크립트 딥다이브 검색 후 스터디에 23장 실행 컨텍스트 편을 보면 된다.
Binding Object에 var, 함수
{ 변수들 } let const
GlobalThisValue , 일반적으로 전역 코드에서 this는 전역 객체 가리킴, 그러므로 전역 객체 바인딩됨.
lexcial (어휘) = 전역, 함수, eval, 모듈 같은 범위 안에서 쓰이는 단어(식별자:변수, 함수, 클래스 등의 이름)
실행컨텍스트는 스택으로 관리됨.
outEnv.ref로 상위 E.C의 L.E를 참조함 (스코프체인 비스무리함 , 상위에서 하위 참조 안됨
블록 레벨 스코프 - 실행 컨텍스트에서 L.E을 블록L.E로 대체한 다음 블록L,E실행이 끝나면 이전 환경으로 되돌림.
'JS' 카테고리의 다른 글
DeepDive JS - 6일차 // 20 - 22,24장 (0) | 2025.01.22 |
---|---|
DeepDive JS - 5일차 // 18 - 19장 (0) | 2025.01.21 |
DeepDive JS - 2일차 // 08장 ~11장 (1) | 2025.01.16 |
DeepDive JS - 1일차 // 04장 ~07장 (1) | 2025.01.15 |
deep js - 7일차 (0) | 2024.05.23 |