Web Programming/FrontEnd

javascript 중급

cycoding 2022. 3. 13. 22:21

전 자바스크립트 글도 그렇지만 이 포스트는 유튜브 '코딩앙마'님의 강의를 바탕으로 작성하는 것입니다.

 

1. var 변수

var는 한번 선언된 변수를 다시 선언할 수 있다.

호이스팅 : 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것처럼 행동

선언및 초기화가 동시에 일어난다. 그래서 아직 할당 전의 변수를 호출해도 error가 나지 않고 undefined라고 뜬다.

(하지만 let은 다름. let은 선언 단계 다음 초기화 단계라서 error남~)

(const는 선언+초기화+할당이 모두 동시에 이루어져야 하는 것이 필수!)

*스코프

- var : 함수 스코프(function-scoped) // 함수 내에서 선언된 변수만 지역변수가 됨.

- let, const : 블록 스코프(block-scoped) // 코드블록 내에서 선언된 변수만 유효

- ex)

const age = 30;

if(age>19) {
	var txt = '성인';
}

console.log(txt); // '성인'

// 이처럼 var같은 경우에는 코드블럭인 if절 내에 사용된 var 변수를 코드블럭 밖에서 사용하는 것이 가능하다.
// 하지만 let과 const는 불가능~
// var가 유일하게 벗어날 수 없는 스코프는 함수!

var는 별로 권장 x let과 const를 권장~

 

2. 생성자 함수

//ex

function User(name, age) {
	this.name = name;
    this.age = age;
}

let user1 = new User('Mike', 30)

//ex2
function UserFunc(name, age) {
	this.name = name;
    this.age = age;
    this.sayName = function(){
    	console.log(this.name);
    }
}

let user2 = new User('Han', 40);
user2.sayName(); // Han