변수 접근 규칙에 따른 유효 범위
let userName = 'Jimmy';
if (userName) {
let message = `${userName}, Hi!`;
console.log(message); //'Jimmy, Hi!'
}
console.log(message) //ReferenceError
let greeting = 'Hi';
function greetPerson() {
let firstName = 'Michle';
return greeting + ' ' + firstName;
}
console.log(greetPerson()); // 'Hi Michle'
//함수 안에서 name을 let으로 선언했을 때
let name = 'Chris';
function whatIsYourName () {
let name = 'Benedict'; //두번째 출력
console.log(name);
};
console.log(name); //첫번째 출력
whatIsYourName();
console.log(name); //세번째 출력
//Chris Benedict Christ 순서로 출력
//함수 안에서 name을 let으로 선언하지 않았을 때
let name = 'Chris';
function whatIsYourName () {
name = 'Benedict'; //두번째 출력
console.log(name);
};
console.log(name); //첫번째 출력
whatIsYourName();
console.log(name); //세번째 출력
//Chris Benedict Benedict 순서로 출력
//let 키워드 사용
for (let i = 0; i <= 10; i++) {
console.log(i); //0부터 10까지 출력됨
};
console.log(`final i is ${i}`); //ReferenceError
//var 키워드 사용
for (var i = 0; i <= 10; i++) {
console.log(i); //0부터 10까지 출력됨
};
console.log(`final i is ${i}`); //final i is 11
'use strict';
var name = 'Noah';
console.log(window.name); // 'Noah' 출력
function foo(){
console.log('bar');
}
console.log(foo === window.foo) ; //true 출력