자바스크립트(5)
-
논리 부정 연산자 - 느낌표 한 개(!)와 두 개(!!)
JavaScript의 논리 연산자 중 NOT 연산자인 느낌표(!)는 부정(Negation)을 의미하며 피연산자의 논리 값을 반전시킨다. 즉, 입력값을 boolean으로 변환하여 값이 true면 false로, false면 true로 리턴한다. 느낌표 두 개(!!)는 이중 부정(부정의 부정)으로 긍정이 된다. 테스트 문자열 ("str")// true('str') !("str")// false !!("str")// true ("")// false('') !("")// true !!("")// false boolean true// true !true// false !!true// true false// false !false// true !!false// false NaN NaN// false(NaN) !NaN..
2023.10.11 -
이벤트 전달 방식
이벤트 등록 TEST var button = document.querySelector('button'); button.addEventListener('click', foo); function foo(event) { console.log('event'); } 위와 같이 addEventListener() 메소드를 통해 화면에 동적인 기능을 추가할 수 있다. 이벤트 버블링 (Event Bubbling) 이벤트 버블링은 특정 화면 요소에서 이벤트가 발생했을 때, 상위 요소들로 전달되는 특성을 의미한다. * 상위 화면 요소 : HTML 트리 구조상 한 단계 위에 있는 요소. var divs = document.querySelectorAll('div'); divs.forEach(function(div) { div...
2022.09.26 -
클로저(Closure)
클로저(Closure) 클로저는 '포섭'이란 뜻으로, 독립적인(자유) 변수를 가리키는 함수이며 클로저 안에 정의된 함수는 만들어진 환경을 기억한다. 클로저 = 함수 + 함수를 둘러싼 환경(Lexical Environment) 예제 1 function outerFunc() { let outerVar = "outer"; function innerFunc() { console.log(outerVar); } return innerFunc; } var test = outerFunc(); // test 변수에 innerFunc 함수를 리턴함 // 유효범위의 어휘적 환경을 유지 test(); //리턴된 innerFunc 함수를 실행(outerVar 변수에 접근) test는 outerFunc이 실행될 때 생성된 inn..
2022.09.22 -
호이스팅(Hoisting)
호이스팅(Hoisting) 호이스팅은 '끌어올리기' 라는 뜻으로, 함수 또는 변수가 끌어올려져 최상단에 선언되는 현상을 말한다. function foo() { console.log('foo'); } foo(); // foo foo(); // foo function foo() { console.log('foo'); } Java와 다르게 함수 선언 자체를 나중에 해줘도 함수를 끌어올려서(Hoist) 갖고온다. 호이스팅은 JavaScript 엔진이 가지고 있는 특징이다. 함수표현식과 같이 에러가 발생하는 예외가 있기 때문에 신중히 사용해야 한다. 호이스팅이 발생하는 코드는 이해하기 어려워지고 > 유지보수가 힘들어지기 때문에 > 호이스팅 현상은 방지하는 것이 좋다. 호이스팅 적용 대상 호이스팅은 var 변수 선..
2022.09.22 -
스코프(Scope)
스코프(Scope) 스코프는 '범위'라는 뜻으로, JavaScript에서는 변수에 접근할 수 있는 범위를 뜻한다. 스코프에는 전역 스코프(Globap Scope)와 지역 스코프(Local Scope)가 있다. 전역 스코프(Global Scope) 변수가 함수 바깥이나 중괄호({}) 바깥인 전역에 선언되었다면 전역 스코프에 정의된 것이다. 전역 스코프는 어느 곳에서든지 해당 변수에 접근할 수 있다. 지역 스코프(Local Scope) 전역 스코프와 반대로, 변수가 함수 안이나 중괄호({}) 안에 선언된 경우 지역 스코프에 정의된 것이다. 지역 스코프는 해당 지역에서만 접근할 수 있다. 해당 지역을 벗어난 바깥에서는 접근이 불가능하다. JavaScript에는 블록 스코프, 함수 스코프 두 개의 지역 변수가 ..
2022.09.22