console.log(child)
var child = "철수"
라고 콘솔창에 입력했을때 언디파인드가 나옴
console.log(child2)
const child2 = "철수"
라고 콘솔창에 입력했을때
Uncaught ReferenceError: child2 is not defined
at :1:13(차일드2가 지정되지않았다)
var를 사용하면 호이스팅이 되어
console.log(child)
var child = "철수"
입력시
var child = undefined;
console.log(child)
var child = "철수"
로 바뀌어 됨
const let 도 호이스팅은 되나 TDZ가 있어서
콘솔창에
hello()
function hello(){
console.log("안녕하세요")}
하면 명령먼저 입력 하고 함수를 작성했는데도불구하고 값이 나옴
불안정하다
hello()
cosnt hello3 = function (){
console.log("안녕하세요")}
이렇게 하면 tdz 에 갖혀서 안정적으로 변함
hello()
cosnt hello3 = () =>{
console.log("안녕하세요")}
화살표함수사용해봄 (화살표로 함수를 입력하면 렛,콘스트 사용)
바, 펑션을 사용하면 잘못된점을 찾기가 힘듦, 중복선언됨
고로 바,펑션 대신 렛,콘스트,화살표함수사용으로 호이스팅되는 공간을 TDZ로 제한하여 코딩하는것이 좋다
현재 우리가 사용하는 넥스트제이에스에서 중복선언을 제한해주긴하고있음
1. 호이스팅 실습
===================
console.log(child)
var child = "철수" // 호이스팅 됨
===================
console.log(child2)
const child2 = "영희" // 호이스팅 되지만, TDZ에 들어가서 접근 불가
===================
console.log(child3)
let child3 = "훈이" // 호이스팅 되지만, TDZ에 들어가서 접근 불가
===================
hello()
function hello(){
console.log("안녕하세요!!")
}
===================
2. 중복선언 실습
===================
var child = "철수"
var child = "영희"
console.log(child)
===================
const child2 = "철수"
const child2 = "영희"
console.log(child2)
===================
let child3 = "철수"
let child3 = "영희"
console.log(child3)
===================
function hello(){
console.log("안녕하세요!!")
}
function hello(){
console.log("반갑습니다@@")
}
hello()
===================
3. 함수 호이스팅+중복선언 실습
===================
hello()
function hello(){
console.log("안녕하세요!!")
}
function hello(){
console.log("반갑습니다@@")
}
===================