======================================================
해당 부분 당장 급급하게 해결보다 강의 먼저 들어서 이론 파악이 중요하다 판단
3~5주차 강의 완독
남은 시간 익숙하지 않은 개념 정리
남은 시간 api해결 고민
object(객체)에 사용할 수 있는 반복문
배열에도 사용 가능하지만 추천 x
const obj = {
name : '이름',
age : '나이'
}
for(const key in obj){
console.log(key); // key값 출력
console.log(obj.name, obj.age); // value 값 출력
console.log(`key 값 : ${key}`); // 1. key값 : 이름 // 2. key값 :age
console.log(`value 값 : ${obj[key]}`); // 1. value 값 : 이름 // 2. value값 : 나이
}
console.log에서 반복문이기에 key,value값이
다 나올때까지 한번씩 순회하면서 반복
for문에서 생성한 변수는 무조건 key값 출력
var a = 1;
function outer() {
function inner() {
console.log(a);
var a = 3;
}
inner();
console.log(a);
}
outer();
console.log(a);
일단 a 변수 선언
outer 함수 실행
inner 함수 실행
console.log(a) = undefined
console.log(a) = 1
console.log(a) = 1
여기서 console.log(a) inner함수안에 있는 값이 왜 1도아니고 3도아닌
undefined인지 헤깔렸는데,
첫 console.log(a) 기준 변수 a 선언이 없어서 첫번째로 찾는건 inner함수 안에
선언한 함수가 있는지! 근데 var a = 3; 이 있었고 아쉽게도 먼저 해독하는건
console.log(a)이기 때문에 선언되있는것만 알고 값은 할당되기 전 콘솔출력이기에
undefined가 출력!
그 다음 outer에 있는 console은 거기 기준 a 선언이 안되있어서 바깥쪽까지 찾아보니
var a = 1이 있어서 1이 출력!
바깥에 있는 콘솔도 1출력!
여기서 var a = 3은 inner안에서 선언하여서 outer쪽으로 실행될시 사라지는 값임
function a(){} => 선언식
var a = function() =>표현식
호이스팅 적용시 함수 명이 같을 때 선언식으로 코드를 짜면 전체에 영향을 끼치는
아주 위험한 에러 코드가 발생될 수 있으니, 표현식을 습관화 하자!
스파르타 자바스크립트 문법 강의 3~4회차 재독