루피-않아
변수
상황에 따라 변할 수 있는 값
- 선언은 let myname;
- 할당은 myname = 'Steve'
- 같이 쓰면 let myname = 'Steve'
'=' 는 같다 라는 표현이 아닌 대입의 표현이다.
할당이 없으면 undefined 라고 표현
조건문
어떠한 조건을 판별하는 기준을 만드는 것
- 조건문에는 반드시 비교 연산자가 필요하다. (comparison operator)
- ' > , < , === ' 비교의 결과는 늘 Boolean, 즉 true 혹은 false이다.
- "===" 는 같다의 의미. "!=="는 다르다의 의미.
- 조건문은 다음과 같이 쓸 수 있다.
if (조건1) {
} else if (조건 2)
} else {
}
- 두가지 조건이 한번에 적용 되는 경우에는 논리 연산자 (Logical Operator)를 사용
ex)학생이면서, 여성일때 통과 -> isStudent && isFemale
학생이거나, 여성일때 통과 -> isStudent || isFemale
학생이아니면서, 여성일때 -> !isStudent && isFemale
- 기억해야 할 6가지 falsy 값. if문에서 false로 변환되므로, if 구문이 실행 안된다.
if (false) , if (null), if(undefined), if(0), if('')
함수
컴퓨터에게 일을 시키기 위한 지시사항의 묶음
- 함수는 입력 -> 함수 - > 출력의 과정으로 이루어져 있다.
- 특별히 함수에서 사용할 입력 값을 매개변수 (parameter)라고 부른다.
이는 함수 실행 시 입력에 따라 바뀔 수 있는 변수지만 , let 등의 키워드를 쓰지 않고 사용할 수 있다.
즉시 호출이 가능한 함수 표현식
- 즉시실행함수는 함수정의 X, 변수저장 X 즉시실행 O
- 함수를 ( ) 로 감싸주기만 하면 즉시 실행함수가 된다
- global하게 선언할 필요 없음,변수에 함수를 이용해 즉시 값을 할당 가능,
라이브러리 전역 변수와 충돌 걱정 없음
(function a () {
console.log("IIFE")
}());
Function Declaration 함수 선언
- 함수선언식으로 정의된 함수는 VO(Varaible Object)에 저장, 선언하는 위치에 무관하게 어느곳에서든 호출이 가능
function A() {
}
Function Expression 함수 표현
var example = function whatsup() {
};
함수 선언, 함수 표현
- 함수 표현식은 함수가 변수에 할당되어 VO에 저장하지 않고 runtime시 실행,
함수 선언식으로 정의하면 JS인터프리터가 과도하게 많은 코드를 VO에 저장하므로 응답 속도가 느려질 수 있다
- 글로벌 스코프에 정의된것은 코드내 어디서든 접근이 가능, 속성이나 메소드가 원치않게 유출될 가능성, 다른 파일에서의 같은 이름의 변수와 함수랑 충돌 가능성 있음