let x = "Global X";
function a () {
let x = "Local X";
console.log(x);
}
function b() {
console.log(x);
}
a();
b();
이럴때는 x라는 변수를 Global X와 Local X 가 중복으로 사용되고 있다
근데 처음 이 예제를 봤을때 Function a 만 중괄호 안에 let x 변수가 선언되어있어서
return 하지 않았기에 {} 안에서 변수가 선언되고 끝난다고 생각했다
let은 날 배신 하지않았고 이렇게 지역변수 => Local X와 전역변수 => Global X 를
나누고 각각 a(Local X) b(Global X) 가 나와 주었다.
지역변수와 전역변수 예제에서
var라는 변수는 나의 통수를 쳤다
var x = "Global X";
if (true) {
var x= "If X";
console.log("1",x);
}
console.log("2",x);
이 예제에서 위 예제와 똑같은데 x가 var 변수로 선언되었다
이게 나는 함정이란것을 알고 역변수인 Global 로 예상하고 1,2 투 글로벌 둘다 글로벌로
예상했지만 통수를 정통으로 맞았다 두번째 if 문 안에있는 If X 가 1,2 둘다 값이 나와버렸다.
이때 강사님이 말씀해주셨다
var가 쓰이는 경우가 있지만 이러한 문제 때문에 예측 가능한 코드를 작성하기 어렵다는것이다.
let 도 똑같은 예제로 연습을 했고
let은 전역변수와 지역변수가 잘 선언되었다.
var를 대체 하기위해 ES6 부터 let과 const라는 키워드가 나왔다
let은 변경 가능한 변수 ,const는 변경이 불가능한 변수(상수)라고 배웠다.
const는 변경 불가한 상수다
const b= "abc";
console.log (b);
b="abcd";
이때 선언 되는 콘솔로그는 abc다
const-> let으로 바꿔 선언하게되면
abcd로 값이 나온다.
const는 객체 자체는 변경이 불가능하지만
객체 안에 속성은 변경이 가능하다.
const myProfile = {
name : "hoon",
age : 20,
isRich:true,
};
console.log(myProfile);
myProfile.age : 30;
console.log(myProfile);
이렇게 해서 객체 안에 속성값을 변경이 가능하다.
먼저 한번 클론코딩 연습해보기
얼른 테킷에 로그인해서 수강해보고싶지않은가!!!😁😁😁😁😁😁😁😁
