본문 바로가기

JavaScript17

[PoiemaWeb] 함수(함수 정의, 매개변수, 호이스팅 1. 함수 정의 함수를 정의하는 방식은 3가지가 있다. 함수 선언문 함수 표현식 Function 생성자 함수 1.1 함수 선언문 함수 선언문(Function declaration)방식으로 정의한 함수는 function 키워드와 아래 내용으로 구성된다. 함수명 :함수 선언문의 경우, 함수명은 생략할 수 없다. 함수명은 함수 몸체에서 자신을 재귀적(recursive) 호출하거나 자바스크립트 디버거가 해당 함수를 구분할 수 있는 식별자이다. 매개변수 목록 : 0개 이상의 목록으로 괄호로 감싸고 콤마로 분리한다. 매개변수의 타입을 기술하지 않기 때문에 함수 몸체 내에서 매개변수의 타입 체크가 필요할 수 있다. 함수 몸체 : 함수가 호출되었을 때 실행되는 문들의 집합니다. 중괄호({})로 문들을 감싸고 retur.. 2023. 3. 10.
[PoiemaWeb] 변경불가성 변경불가성(Immutability)는 객체가 생성된 이후 그 상태를 변경할 수 없는 디자인 패턴을 의미한다. 객체는 참조 형태로 전달하고 전달 받는다. 객체가 참조를 통해 공유되어 있다면 그 상태가 언제든지 변경될 수 있기 때문에 문제가 될 가능성도 커지게 된다. 1. immutable value vs. mutable value var str = 'Hello'; str = 'world'; 위 코드에서 첫번째 구문이 실행되면 메모리에 문자열 'Hello'가 생성되고 식별자 str은 메모리에 생성된 문자열의 주소를 가리킨다. 그리고 두번째 구분이 실행되면 이전에 생성된 문자열 'Hello'을 구정하는 것이 아니라 새로운 문자열 'world'를 메모리에 생성하고 식별자 str은 이것을 가리킨다. 이때 문자열 .. 2023. 3. 9.
[PoiemaWeb] 객체 1. 객체란 자바스크립트는 객체기반의 스크립트 언어이며 자바스크립트를 이루고 있는 거의 "모든 것"이 객체이다. 원시 타입을 제외한 모든 값들(함수,배열, 정규표현식 등)은 모두 객체이다. 자바스크립트의 객체는 키와 값으로 구성된 프로퍼티들의 집합니다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있다. 따라서 프로퍼티 값으로 함수를 사용할 수도 있으며 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메소드라 부른다. 자바스크립트의 객체는 객체지향의 상속을 구현하기 위해 "프로토타입"이라고 불리는 개체의 프로퍼티와 메소드를 상속받을 수 있다. 1.1 프로퍼티 프로퍼티는 프로퍼티 키(이름)와 프로퍼티 값으로 구성된다. 프로퍼티는 프로퍼티 키로 유일하게 식별할 수 있다. 즉, 프로퍼티 키는.. 2023. 3. 9.
[PoiemaWeb] 단축 평가 'Cat' && 'Dog' // "Dog" 논리곱 연산자 &&는 두개의 피연산자가 모두 true로 평가될 때 ture를 반환한다. 대부분의 연산자가 그렇듯이 논리곱 연산자도 오른쪽에서 왼쪽으로 평가가 진행된다. 첫번째 피연산자 'Cat'은 true로 평가된다. 하지만 이 시점까지는 위 표현식을 평가할 수 없다. 두번째 피연산자까지 평가해 보아야 위 표현식을 평가할 수 있다. 두번째 피연산자 'Dog'는 true로 평가된다. 이때 두개의 피연산자가 모두 true로 평가되었다. 이때 논리곱 연산의 결과를 결정한 것은 두번째 피연산자 'Dog'다 논리곱 연산자 &&는 논리 연산의 결과를 결정한 두번째 피연산의 평가 결과 즉, 문자열'Dog'를 그대로 반환한다. 'Cat || 'Dog' // "Cat" 논리합 .. 2023. 3. 8.