본문 바로가기

javascript

[javascript] location.href 에서 target=_blank 효과 사용 var openNewWindow = window.open("about:blank");openNewWindow.location.href='http://......'; 더보기
[javascript] JavaScript Puzzlers! http://javascript-puzzlers.herokuapp.com/ 더보기
[javascript] 중괄호 위치 자바스크립트는 세미콜론을 삽입하지 않고 행을 종료하면 자동으로 세미콜론을 추가한다. 이러한 특징때문에 문제가 발생할 수 있다. function func(){return{name:'JunHyuk'};} 위 함수가 name 프로퍼티를 가진 객체를 반환할것 같지만 자동으로 추가된 세미콜론때문에 undefined를 반환한다. function func(){return undefined;//아래 코드는 실행안된다.{name:'JunHyuk'}} 정리하자면 여는 중괄호는 명령문과 동일한 행에 두어야 한다. 더보기
[javascript] for loop 다음과 같은 for문을 최적화를 시켜 보겠다. for(var i=0; i 더보기
[javascript] 전역변수 앞에서는 변수와 관련돼서 hoisting에 대해 알아봤습니다. 이번에는 전역변수에 대해 알아보겠습니다. 전역변수, 지역변수 프로그래밍을 하는 사람이라면 기본일 것이고 설명할 것들이 있나 생각할수도 있습니다. 하지만 javascript의 특징과 주의할 점을 설명하겠습니다. 함수내에서 var를 빠뜨리고 선언하면 전역변수로 선언된다. function sun(x,y){result=x+y;//전역변수return result;} 위와같이 var를 빠뜨리고 변수를 선언하면 전역변수가 됩니다. 작동에는 문제가 없지만 함수를 호출하고 나서 전역 네임스페이스에 result변수가 남아 문제를 발생 시킬수 있습니다. 다음으로 var선언을 연속적으로 선언할 경우 생기는 문제점이 있습니다. function a(){var a=b=.. 더보기
[javascript] hoisting hoisting을 해석하면 '끌어올리기'이다. 자바스크립트는 함수내에서 여기저기에 여러개의 var선언을 사용하지만 실제로 모두 함수상단에 선언된 것과 동일하게 동작합니다. 이를 호이스팅이라 합니다. 아래 코드를 보면서 console.log에 뭐가 나올지 생각하보면 name='global';//전역변수function func(){console.log(name);//undefinedvar name='local';console.log(name);//local}func(); 첫번째 console.log는 global이 두번쨰console.log는 local이 찍힌다고 생각할 수 있습니다. 지역변수 name이 선언되기 전에 출력을 했으니 전역변수를 출력하고 다음 출력은 지역변수가 선언된 다음이니 지역변수값이 출력.. 더보기
[javascript] ==과 === console.log(false==0); console.log(''==0); 을 해보면 true가 출력된다. 이는 암묵적 타입캐스팅 때문에 그러는데 항상 값과 타입을 모두확인하는 ===dhk !==연산자를 사용하자 더보기
[javascript] javascript patterns http://shichuan.github.io/javascript-patterns/ 더보기
[javascript] 배열을 스택처럼 다루기 var array=[]; //배열선언 array.shift(); //배열 첫번째 원소 삭제array.unshift() //배열 첫번째 원소 추가array.push() //배열 마지막 원소 추가array.pop() //배열 마지막 원소 삭제 더보기
[javascript] setTimeout, setInterval, clearInterval setTimeout 메서드는 일정시간후 함수를 실행한다.setTimeout(fn, delay);setTimeout(function(){console.log('setTimeout')}, 1000); //1초후 setTimeout출력 setInterval 메서드는 일정시간마다 함수를 실행한다.setInterval(fn, delay);setInterval(function(){console.log('setInterval')}, 1000) //1초마다 setInterval출력 한가지 주의할 점이 있다 아래와 같이 입력해보면setInterval(console.log('setInterval'), 1000) //setInterval 한번만 출력차이점은 함수안에 있을때 반복해서 실행한다는 점이다. 다음으로 clearIn.. 더보기