전체 글 (104) 썸네일형 리스트형 <자바스크립트 Javascript> 안정적인 개발환경을 위한 Strict mode - Strict mode란? 선언하지 않은 변수에 값을 할당하고 실행하면, 자바스크립트 엔진은 스코프 체인을 통해 이를 찾아본 후 에러를 발생시키는 것이 아니라 전역 변수를 생성한다. 이를 암묵적 전역 변수(implicit global)이라 한다. 다만, 이러한 암묵적 전역 변수는 추후 오류를 발생시키는 원인이 될 수 있으므로 반드시 변수 키워드를 사용하여 변수를 선언한 다음에 변수를 사용하는 것이 좋다. 하지만 그럼에도 오타나 문법 지식의 미비 등의 이유로 실수는 언제나 일어날 수 있다. 따라서 이러한 잠재적인 오류 자체를 일어나기 어렵도록 개발 환경을 만들고 그 환경에서 개발을 하는 것을 근본적인 해결책이라 할 수 있겠다. 이러한 맥락에서 ES5부터 strict mode가 추가되었다. 즉, stric.. <자바스크립트 Javascript> 객체의 변경불가성(Immutability) - 변경불가성이란? 함수형 프로그래밍의 핵심 원리로, 객체가 만들어진 이후에 상태를 변경할 수 없는 디자인 패턴을 뜻한다. 객체는 기본적으로 참조 형태로 운용되기 때문에, 그 상태가 언제든지 변할 수 있다는 위험성을 가지게 된다. 따라서 상태가 변경될 경우 객체가 존재하고 있는 장소에 변경 사실을 통지하고 대처할 수 있는 대응이 필요하다. 이 대응 방법으로는 객체를 불변객체로 만들어 변경이 필요한 경우에는 객체의 방어적 복사(defensive copy)를 통해 새로운 객체를 생성하여 변경하는 방법이 있고, Observer 패턴으로 객체의 변경에 대처하는 방법이 있다. 다만 불변 객체가 많아지면 이는 또 다시 프로그래밍에 있어 부적절한 방법이 될 수 있다. 이에 ES6에서는 불변 데이터 패턴(immutab.. <자바스크립트 Javascript> 실행 컨텍스트 - 실행 컨텍스트(Execution Context) 실행 컨텍스트는 쉽게 말해 자바스크립트에서 실행 가능한 코드가 실행되기 위해 필요한 환경을 말한다. 실행 가능한 코드란, 전역 코드와 Eval 코드(eval 함수로 실행되는 코드), 함수 코드(함수 내에 존재하는 코드)를 말한다. 실행 컨텍스트는 scope, hoisting, this, function, closure 등의 동작원리를 담고 있어 자바스크립트의 핵심원리라 할 수 있다. 자바스크립트 엔진은 코드를 실행하기 위해 실행에 필요한 여러가지 정보를 알고 있어야 하는데, 그 정보라 함은 변수, 함수 선언, 변수의 유효범위, this와 같은 것들이다. - 실행 컨텍스트의 3가지 객체 실행 컨텍스트는 일반적으로 실행 가능한 코드를 형상화하고 구분하는 추.. <자바스크립트 Javascript> 빌트인객체(Built-in Object) - 자바스크립트의 객체 자바스크립트의 객체는 네이티브 객체(Native object), 호스트 객체(Host object), 사용자 정의 객체(User-defined object)로 총 3가지가 있다. 1) 네이티브 객체 애플리케이션 전역의 공통된 기능을 제공한다. 환경에 관계없이 언제나 사용이 가능하다. Object, String, Number, Function, Array, RegExp, Date, Math 등의 객체 생성과 관련있는 함수 객체와 메서드로 구성되어있다. 또한 네이티브 객체를 Global objects라 부르기도 하는데, 전역 객체가 Global object이므로 혼동에 주의해야 한다. *Object() - 객체를 생성하는 생성자 함수. 다만 객체를 생성할 때에는 특수한 상황이 아니면 .. <자바스크립트 Javascript> DOM (3) - 요소를 조작하기(DOM Manipulation) 1) 텍스트 노드에 접근/수정하기 텍스트 노드에 접근하는 방법은 아래와 같다. : 요소 노드의 자식인 텍스트 노드의 부모 노드를 선택 -> firstChild 프로퍼티를 사용하여 텍스트 노드를 탐색 -> 텍스트 노드의 프로퍼티(nodeValue)를 이용하여 텍스트를 취득 -> nodeValue를 이용하여 텍스트를 수정. *nodeValue - 노드의 값을 반환함. 리턴값은 텍스트 노드이면 문자열, 요소 노드이면 null. IE6 이상의 브라우저에서만 사용가능. *nodeName, nodeType으로 노드의 정보 취득 가능. 2) 어트리뷰트 노드에 접근/수정하기 어트리뷰트 노드에 접근/수정할 때는 다음의 프로퍼티나 메서드를 사용한다. *className .. 이전 1 ··· 3 4 5 6 7 8 9 ··· 21 다음