function Book(title, author){
this.title = title;
this.author = author;
}
var myBook = new Book("홍길동전","허균선생");
myBook instanceof Book; //true
//Book 이라는 생성자로 구성된 객체를 만들고,
//새로운 Book 객체 myBook 을 만들었을 때,
//myBook 은 Book의 instanceof 가 true 임을 알 수 있습니다.
var color1 = new String("red");
var color2 = "red";
color1 === color2; //false
var Glob = "I am global";
//일단 js 파일에 그냥 이렇게 덩그러니 선언하면 당연히 글로벌 변수가 됩니다.
for(var i=0;i<10;i++){
var isGlob = true;
}
//또, for 문안에 두면 그래도 글로벌이 아니지 않을까라는 생각으로
//for 문안에서 막 사용하게 되는 변수들은
//앞서 배운것처럼 for 문은 스코프로 한정되지 않기때문에
//자연스레 글로벌 변수가 되어버립니다.
var getVariable ="global";
(function() {
var getVariable =" immediate function";
inside();
console.log("2. immediate function: " + getVariable);
function inside(){
console.log("1. inside function :" + getVariable);
getVariable = "will i be global?";
}
}());
console.log("3. global: "+ getVariable);
/*
1. inside function : immediate function
2. immediate function : will i be global?
3. global : global
*/
var A="haha";
var myA = A;
console.log(A); //haha
console.log(window.A); //haha
console.log(window["A"]); //haha
console.log(window["myA"]); //haha
//#1
console.log(Ex);
var Ex = "global";
console.log(Ex);
//undefined
//global
//#2
console.log(noVar);
noVar="global";
console.log(noVar);
//레퍼런스 에러 발생 !
var Mouse = document.querySelector(".mouseBtn");
Mouse.style.backgroundColor="#111";
//mouse 의 style 의 배경색 ..이렇게 속성값에 접근하기 보다는
var MouseStyle = Mouse.style;
MouseStyle.backgroundColor="#111";
//자주 접근하는 속성인 style 에 대해서 변수를 새로 만들어놓고,
//그 변수의 속성으로 짧게 접근하는 방식이 성능을 높이는데 도움이 됩니다.