deepCopyObject.js
실행 컨텍스트.js
function a ( x ) {
console . log ( x )
var x
console . log ( x )
var x = 2
console . log ( x )
}
a ( 1 )
function a ( ) {
var x = 1
console . log ( x )
var x
console . log ( x )
var x = 2
console . log ( x )
}
a ( )
function a ( ) {
var x
var x
var x
x = 1
console . log ( x ) // 1
console . log ( x ) // 1
x = 2
console . log ( x ) // 2
}
function a ( ) {
console . log ( b )
var b = 'bbb'
console . log ( b )
function b ( ) { }
console . log ( b )
}
a ( )
function a ( ) {
var b
function b ( ) { }
console . log ( b )
b = 'bbb'
console . log ( b )
console . log ( b )
}
a ( )
function a ( ) {
var b
b = function b ( ) { }
console . log ( b ) // b 함수
b = 'bbb'
console . log ( b ) // 'bbb'
console . log ( b ) // 'bbb'
}
a ( )
function a ( ) { }
a ( )
var b = function ( ) { }
b ( )
var c = function d ( ) { }
c ( ) // 실행
d ( ) // 에러
console . log ( sum ( 1 , 2 ) )
console . log ( multiply ( 3 , 4 ) )
function sum ( a , b ) {
return a + b
}
var multiply = function ( a , b ) {
return a * b
}
함수 선언문과 함수 표현식 - 호이스팅 마친 후
var sum = function sum ( a , b ) { // 함수 선언문은 전체를 호이스팅
return a + b
}
var multiply
console . log ( sum ( 1 , 2 ) )
console . log ( multiply ( 3 , 4 ) )
multiply = function ( a , b ) { // 변수의 할당부는 원래 자리에 남겨둔다
return a * b
}