왜 이 언어는 scope 지 ㅈ대로냐
-----------------------------------------------------
var i = 0;
function test(){
i=1;
}
console.log( i ) // 1
-----------------------------------------------------
var i = 0;
function test(){
var i=1;
}
console.log( i ) // 0
-----------------------------------------------------
function test(){
var i=1;
}
console.log( i ) // null undefinde property i
-----------------------------------------------------
function test(){
i=1;
}
console.log( i ) // 1
-----------------------------------------------------
회에도 초기화이전에 함수를같은 이름으로 사용하면
함수가 변수를 덮어버리고
변수를 초기화한후에 함수를 선언하면
변수가 함수를 덮어버리고
뭐 이런 근본없는 언어가 다 있지 .
흡사 php를 보는거같네
븅신새끼야 클로저영역이 스코프다 좆같은놈아
스크립트가 아니라 자바스크립트라고 해라... 귀찮으면 자스, js 등등.. 스크립트가 한두개냐
그래서 let이 나옴
그리고 es6의 const, let을 쓰면 var의 펑션 스코프가 아닌 블락 스코프를 쓸 수 있다
인터넷 좆스플로러 같은게 es6를 지원하지 않지만 이를 위해 es6 등을 es5로 변환해주는 babel 등을 사용할 수 있으므로 일단 es6 기준로 작성하는 거 추천.. 기왕이면 strict mode로
물론 공부는 기존 es5쪽도 해놔야함
일단 생략하는 습관을 버려야