var game = '리그오브레전드'

function login(id, pass) {
  var id = id
  var passWord = pass

  if(passWord == '몰라 알려줘') {
    findPassWord()
  } else {
    console.log('환영합니다') // 1 (로그인 성공시)
  }

  function findPassWord() {
    var findPassWord = '123123'
    console.log(`${game} '${id}'회원님의 비밀번호는 '${passWord}'가 아니라 ${findPassWord}입니다`) // 1 (로그인 실패시)
  }
  console.log('내가 입력한 id, pass 값') // 2
  console.log(id) // 3
  console.log(passWord) // 4
}
// 로그인 성공시
login('데프트', '123123')

// 1 - 환영합니다
// 2 - 내가 입력한 id, pass 값
// 3 - 데프트
// 4 - 123123

// 비밀번호를 모를시
login('데프트', '몰라 알려줘')

// 1 - 리그오브레전드 '데프트'회원님의 비밀번호는 '몰라 알려줘'가 아니라 123123 입니다
// 2 - 내가 입력한 id, pass 값
// 3 - 데프트
// 4 - 몰라 알려줘

스코프 데이터 접근

(데이터 상황)

(전역)
var game = '리그오브레전드'

(login함수)
var id = '데프트'
var passWord = '몰라 알려줘'

(findPassWord함수)
var findPassWord ='123123'

// 접근 할 수있는 변수
(전역)
var game = '리그오브레전드'

(login함수)
var game = '리그오브레전드'
var id = '데프트'
var passWord = '몰라 알려줘'

(findPassWord함수)
var game = '리그오브레전드'
var id = '데프트'
var passWord = '몰라 알려줘'
var findPassWord ='123123'

 

ex) (findPassWord함수)에서 game변수를 출력하려고 한다면

(findPassWord함수) -> (login함수) -> (전역) 순서로 찾는다

1. (findPassWord함수)에서 game 변수가 있는지 찾아보고 없다면

2. (login함수)에서 game 변수를 찾아보고 없다면

3. (전역)에서 game 변수를 찾았다

 

포함 관계는 전역 > login함수 > findPassWord함수 이지만

접근 관계는 반대이다

 

'Javascript' 카테고리의 다른 글

[Javascript] 객체와 변경불가성(Immutability)  (0) 2021.06.22
[Javascript] 객체  (0) 2021.06.21
[Javascript] 데이터 타입  (0) 2021.06.18
자잘한 용어 정리  (0) 2021.06.09
[Javascript] var, let, const 차이점  (0) 2021.02.15

+ Recent posts