함수 작동 원리
hosting
environmentRecord는 현재 실행될 컨텍스트의 대상 코드 내에 어떤 식별자들이 있는지에만 관심이 있고, 각 식별자에 어떤 값이 할당될 것인지 관심없음.
(단 변수는 선언부와 할당부에서 선언부만 반면, 함수 선언은 함수 전체를)
1. 변수망 끌어올려 주솟값 배정(할당)
2. 할당 처리 X
함수 선언문은 함수명으로 선언한 변수에 함수를 할당
명칭 |
예시 |
변수 | (var / let / const) aaa |
string, value | "aaa" |
함수 | aaa( ) |
method(메소드) | _____.write( ) |
(거의)객체 :생성자 함수 |
Aaa( ) |
property(속성) | _____.scr = |
_____.scr = : property(속성)
_____.write( ) : method(메소드)
명령어 : ( ) 생겨라 '열려라 참깨!'
함수 선언문(function declaration)과 함수 표현식(function expression)
함수 선언 : function의 정의부분만 존재하고 별도의 할당 명령이 없는 것.
함수 표현 : 정의한 function을 별도의 변수에 할당하는 것(함수 선언문의 경우 만드시 항수명이 정의돼있어야. 반면 함수 표현식은 없어도.).
익명 함수 표현식 : 함수명을 정의하지 않은 함수.
function a ( ) { }
a( );
>>>함수 선언문. 함수명 a가 곧 변수명.
var c = function d( ){ }
c( ); => 실행 가능
>>> 익명 함수 표현식. 변수명 b가 곧 함수명.
기명 함수 표현식 : 함수명을 정의한 함수.
var c = function d ( ){ }
c( ); => 실행 가능
d( ); => 에러!
>>> 기명 함수 표현식. 변수명은 c, 함수명은 d
object.property " = " 속성이 된다는 뜻은 object의 key값을 의미함으로 "=" 은 object 안에 속성(key)의 값(value)를 변경한다는 이야기
object.method " ( )"
- 변수 앞에 점(.) 불가 : (var/let/const) aaa => 변수
- aaa( ) => 함수
- ____.aaa() => ( )는 값을 return(반환) 한다는 것과 동의어(주의 해야할 점은 return은 parameter를 받은 경우에만 지역변수 값을 전역변수로 반환한다[확인필요.2023.11.17]. 따라서 전역벽수로 값을 반환하고 싶을 경우는 function() 작성 이전에 (var / let / const) aaa =""; 선언 필요)
class 공식에서 return 값을 사용하는데, 여기서는 가로안 parameter(인자)가 없다.
class School {
constructor(school) {
this.SchoolName = school;
}
mySchool( ){
return "My School is "+ this.schoolName;
}
}
객체
TIP
객체를 만들때 function's Name은 첫문자는 대문자
function Student(v1, v2){
(key) this.vv1 = v1(value);
(key) this.vv2 = v2(value) ;
}
=== Student = {vv1 : v1, vv2 : v2}
객체 안 function
function person : { name : "최영희", age : 22, fullName : function() { ... }}
- person.name => 최영희
- person.age => 22
- person.fullName => function() { ... } (함수가 계산식이 출력)
- person.fullName( ) => 함수 결과 값이 출력 +function () { 안에 return 값 필요*}
예시 )
this.age = function ( ) {
let date = new Date;
return date.getFullyear - this.birth_year;
}
----TIP----
function abc( ) { }
setTimeout ("abc( )", 2000} === setTimeout(abc, 2000)
TIP
obj.
obj.write ( param )
==> 명령어
함수는 앞에 '동사' 명령어
참조
코어 자바스크립트
'나의 FE피봇이야기 > Javascript' 카테고리의 다른 글
객체 (0) | 2023.11.13 |
---|---|
[addEventListner] (0) | 2023.11.10 |
함수 정의 및 선언문 작성 그리고 event&event handler (2) | 2023.11.08 |
HTML과 JavaScript 차이점 2개 (0) | 2023.11.08 |
[JS] 대입 연산자의 활용 '지역변수 -> 전역변수' (0) | 2023.11.07 |