1. 동등/일치 연산자
var a = 1, b = "1";
a==b
a===b
- 동등 연산자 : 값을 비교
- 일치 연산자 : 값, 타입까지 모두 비교
2. const, let, var
- const
- 선언, 초기화, 할당 동시에 진행
- 블록 스코프
- let
- 선언 -> 초기화 -> 할당 순서로 진행
- 블록 스코프
- var(이제 사용하지 않음)
- 선언, 초기화 -> 할당 순서로 진행
- 함수 스코프
- function
- 함수 스코프: 조건문 안에서 선언해도 밖에서 사용가능함, 함수는 안됨(그래서 함수 스코프)
- 블록 스코프: 함수, 조건문 안에서 선언하면 밖에서 사용할 수 있음
3. Hoisting
- 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것처럼 행동
- 자바스크립트 엔진 동작순서
- Hoisting은 스코프 단위로 일어남
- 선언은 호이스팅되지만, 할당은 Hoisting 되지 않음
- let, const 또한 내부적으로는 호이스팅 되지만 Temporal Dead Zone에 의해 에러가 발생, 변수에 값을 할당하기 전에 사용할 수 없음
- 함수선언문 해석 -> 변수 초기화 -> 코드실행
- 라인 위치에 관계없이 어디서든 함수나 변수를 호출가능
console.log(n);
var n = 1234;
console.log(n);
let n = 1234;
- var 선언을 지양함으로써 호이스팅으로 일어나는 실수를 줄일 수 있음
- Temporal Dead Zone(TDZ): 스코프가 시작되고, 변수 선언을 읽은 후 그 변수가 초기화 되기 전까지의 영역을 말함
4. Arrow Function
const af = () => {
console.log("Arrow Function Example");
};
const add = (a, b) => {
return a + b;
}
const add = (a, b) => (
a + b;
);
const add = (a, b) => a + b;
5. Constructor Function(생성자 함수)
function User(name, age) {
this.name = name;
this.age = age;
this.getUser = function() {
console.log("name: " + this.name + "\n" + "age: " + this.age);
}
}
let user = new User("go", 23);
user.getUser();
- 생성자 함수는 첫글자를 대문자로 함
- new를 꼭 붙여줘야됨(안붙이면 undefined)
열심히 하는 모습 보기 좋아요~