1. 개념 일련의 과정을 문으로 구현하고 코드 블록으로 감사서 하나의 실행 단위로 정의한 것 1-1. 함수의 요소 프로그래밍 언어에서의 함수는 수학에서와 비슷하게 입력을 받아서 출력을 반환하게 됨 매개변수 : 입력을 전달받는 변수 입력 : 인수 반환값 : 출력값 함수 이름 함수 역시 값이기 때문에 여러 개 존재할 수 있음 특정 함수를 구별하기 위한 식별자인 함수 이름을 사용 함수 호출 인수를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적으로 지시하는 것 2. 함수가 필요한 이유 2-1. 코드의 재사용 개발자에 의해 결정될 수 있는 실행 시점 몇 번이든 재사용이 가능 동일한 방법이 반복적으로 수행되어야 한다면 미리 정의된 함수를 재사용하면 됨 2-2. 유지보수의 편의성 & 코드의 신뢰성 함수의 재..
1. 원시 값과 객체 원시 타입과 객체 타입의 근본적인 차이 3가지 변경 불가능한 값(immutable value) vs. 변경 가능한 값(mutable value) 확보된 메모리에 저장되는 실제 값 vs. 확보된 메모리에에 저장되는 참조 값 값에 의한 전달 vs. 참조에 의한 전달 1-1. 원시 값 1-1-1. 변경 불가능한 값 원시 값은 변경이 불가능한 값 → 한번 생성된 원시 값은 읽기 전용 값 변경할 수 없다 변경할 수 없는 것은 값이지 변수가 아니다. 즉, 변수에 할당된 값이 변경이 불가능하다는 것이지 변수 자체는 재할당을 통해서 변경이 가능하다. 상수 상수는 변수의 상대 개념으로 재할당이 금지된 변수이다. 그 말은 상수에 할당된 값은 한번 할당되면 더 이상 바뀌지 못한다. 여기서 주의할 점은 ..
1. 객체란? 객체 기반의 언어인 자바스크립트 원시 값을 제외한 나머지 값은 모두 객체 변경 가능한 값 mutable value 원시 값은 변경이 불가능한 값 immutable value 1-1. 객체의 구성 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키(key) 와 값(value) 으로 구성 1-1-1. 프로퍼티 객체의 상태를 나타내는 값 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있음 var obj_name = { ppname: 'property name' // 프로퍼티 // 프로퍼티 키 : 프로퍼티 값 }; console.log(obj_name); 1-1-2. 메서드 프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메서드라 부름 프로퍼티를 참조하고 조작할 수 있는..
1. 타입 변환이란? 1-1. 명시적 타입 변환 개발자가 의도적으로 값의 타입을 변환 타입 캐스팅 이라고도 칭함 var x = 77; var str = x.toString(); // 의도적으로 number인 x를 String으로 타입 변환 console.log(typeof str, str); // string, '77' 1-2. 암묵적 타입 변환 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 암묵적으로 타입이 자동 변환 타입 강제 변환 이라고도 칭함 var x = 77; var str = 'My score is ' + x; // x는 number지만 String으로 자동 타입 변환 console.log(str); 1-3. 타입 변환의 특징 기존의 원시 값을 직접 변경하는 것이 아님 → 기존 원시 값..
1. 필요성 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다. 제어문을 사용하여 코드의 실행 흐름을 인위적으로 제어할 수 있으나 그로 인해 코드의 흐름을 혼란스럽게 만들 수도 있다. 그럼에도 제어문은 코딩을 하는데에 있어 큰 영향력을 주기에 확실하게 이해하는 것은 필요하다. 2. 블록문 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 함 블록문을 하나의 실행 단위로 취급 언제나 문의 종료를 의미하는 자체 종결성을 갖기 때문에 블록문의 끝에는 세미콜론을 붙이지 않아도 된다 3. 조건문 주어진 조건식의 평가 결과에 따라 블록문의 실행을 결정 if…else 문, switch 문 2가지가 존재 3-1. if … else 문 주어진 조건식의 평가 결과에 따라 실행할 코드 ..
1. 개념 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행하여 하나의 값을 만든다 연산의 대상인 피연산자는 값으로 평가될 수 있는 표현식이어야 함 연산자 표현식 또한 값으로 평가될 수 있는 표현식이어야 함 2. 부수 효과 연산을 거쳐 피연산자의 값이 변경된다면 부수 효과가 존재하는 것 2-1. 연산자의 부수 효과 다른 코드에 영향을 줄 수도 있다는 특징을 가짐 3. 산술 연산자 피연산자를 대상으로 수학적 계산을 수행하여 새로운 숫자 값을 만들어 냄 산술 연산이 불가능한 경우 NaN 을 반환 3-1. 이항 산술 연산자 2개의 피연산자를 산술 연산 사칙연산(+, -, *, /) 와 나머지 연산(%) 총 5개의 연산자 모두 부수 효과는 없이 새로운 값을 생성하여 반환 3..
1. 개념 값(데이터)의 종류를 뜻함 ES6 기준 6개의 원시 타입과 1개의 객체 타입으로 분류 원시 타입 number, string, boolean, undefined, null, symbol 객체 타입 객체, 함수, 배열, … 원시 타입을 제외한 모든 값들이 객체 타입 뒤의 파트에서 객체를 배운 후 알아볼 예정 2. 숫자 타입 number type 2-1. 특징 자바스크립트 에서는 한가지의 숫자 타입만 존재 int, float, double 과 같이 나누어져있지않고 number 하나로만 존재 모든 수를 실수로 처리 2진수, 8진수, 16진수 들은 참조시 10진수로 해석됨 // 모두 하나의 number 타입 & 실수로 처리됨 var vi = 77; // 77.0 var vd = 77.0; // 77.0..
1. 값 value 표현식(expression) 이 평가(evaluate) 되어 생성된 결과 var result; // result 변수 선언 result = 15 * 5; // "15 * 5" 라는 표현식을 평가하여 생성된 결과 "75" 를 result 변수에 할당 위의 방식처럼 뿐만 아니라 다양한 방식으로 값을 생성할 수 있음 대표적인 방법 “리터럴” 2. 리터럴 literal 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation) 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성 다양한 종류의 값들을 생성할 수 있음 정수, 부동소수점, 2진수, 8진수, 16진수, 문자열, 불리언, 객체, 배열, 함수, regex, … 3. 표현식 expression ..