Tiny Star
[JavaScript] 매개 변수와 인수, 참조에 의한 전달
·
📚STUDY/JavaScript
매개 변수와 인수함수를 실행하기 위해 필요한 값을 함수 외부에서 함수 내부로 전달할 필요가 있는 경우, 매개변수(parameter)를 통해 인수(argument)를 전달한다. 인수는 값으로 평가될 수 있는 표현식이어야 한다. 인수는 함수를 호출할 때 지정하며, 개수와 타입에 제한이 없다. 매개변수는 함수를 정의할 때 선언하며, 함수 몸체 내부에서 변수와 동일하게 취급된다. 함수가 호출되면 함수 몸체 내에서 암묵적으로 매개변수가 생성되고, undefined로 초기화된 후 인수가 순서대로 할당된다. 매개변수는 함수 몸체 내부에서만 참조할 수 있고, 함수 몸체 외부에서는 참조할 수 없다.  함수는 매개변수의 개수오아 인수의 개수가 일치하는지 체크하지 않는다. 매개변수보다 전달되는 인수가 많거나 적은 경우 에러..
[JavaScript] 함수의 정의
·
📚STUDY/JavaScript
함수 정의란?함수 정의란 함수를 호출하기 이전에 인수를 전달받을 매개변수와 실행할 문들, 그리고 반환할 값을 지정하는 것을 말한다. 정의된 함수는 자바스크립트 엔진에 의해 평가되어 함수 객체가 된다. 함수를 정의하는 방법은 총 4가지가 있다.함수 정의 방식예시함수 선언문function add(x, y) {  return x + y;}함수 표현식var add = function (x, y) {  return x + y;};Function 생성자 함수var add = new Function('x', 'y', 'return x + y');화살표 함수 (ES6)var add = (x, y) => x + y; 변수 선언과 함수 정의변수는 '선언(declaration)'하지만, 함수는 '정의(definition)'..
[JavaScript] 자바스크립트 함수
·
📚STUDY/JavaScript
함수란?프로그래밍 언어의 함수는 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행단위로 정의한 것이다. 프로그래밍 언어의 함수도 수학의 함수와 마찬가지로 입력을 받아서 출력을 내보낸다.  함수 내부로 입력을 전달받는 변수를 매개변수(parameter), 입력 값을 인수(parameter), 출력 값을 반환값(return value)이라고 한다. 함수는 값이며, 특정 함수를 구별하기 위해 식별자인 함수 이름을 사용할 수 있다.함수는 함수 정의(function definition)를 통해 생성하며, 인수를 매개변수를 통해 함수에 전달하며 함수의 실행을 명시적으로 지시하는 과정인 함수 호출을 통해 실행한다. 함수를 호출하면 코드 블록에 담긴 문들이 일괄적으로 실행되고, 실행 ..
[JavaScript] 원시 값과 객체의 비교 (feat. 값에 의한 전달, 참조에 의한 전달)
·
📚STUDY/JavaScript
원시 값과 객체자바스크립트가 제공하는 데이터 타입은 크게 원시 타입과 객체 타입으로 구분할 수 있다. 이 둘을 구분 짓는 이유는 두 가지 타입이 서로 근본적으로 다르기 때문이다. 간단히 살펴보자면, 두 타입의 큰 차이점은 아래와 같다. 원시 타입의 값(원시 값)객체 타입의 값(객체)변경 가능 여부변경 불가능한 값(immutable value)변경 가능한 값(mutable value)메모리 공간에 저장되는 값실제 값이 저장됨참조 값이 저장됨다른 변수에 할당하는 경우값에 의한 전달참조에 의한 전달 원시 값변경 불가능한 값원시 타입의 값, 즉 원시 값은 변경 불가능한 값으로 한번 생성된 원시 값은 읽기 전용 값으로서 변경할 수 없다. 이러한 원시 값의 특성은 데이터의 신뢰성을 보장한다.변수에 값을 재할당하면 ..
[JavaScript] 객체 리터럴
·
📚STUDY/JavaScript
객체란?자바스크립트는 객체 기반의 프로그래밍 언어로, 자바스크립트를 구성하는 거의 모든 것(원시 값을 제외한 나머지 값)은 모두 객체다. 원시 타입은 단 하나의 값만 나타내지만, 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키(key)와 값(value)로 구성된다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 프로퍼티 값이 함수일 경우, 이를 메서드(method)라 부른다.프로퍼티는 객체의 상태를 나타내는 값(data)이고, 메서드는 프로퍼티를 참조하고 조작할 수 있는 동작(behavior)으로서의 역할을 한다. 객체 리터럴에 의한 객체 생성C++나 자바와 같은 클래스 기반 객체지향 언어는..
[JavaScript] 단축 평가, 옵셔널 체이닝 연산자, null 병합 연산자 관련 문제
·
📚STUDY/JavaScript
아래는 논리 연산자, 옵셔널 체이닝 연산자(?.), 그리고 null 병합 연산자(??)들을 조합해서 만든 표현식의 평가값이 무엇일지 연산해볼 수 있는 문제들이다. result의 값이 무엇인지 맞추면 된다. 문제문제 1const obj = { a: null, b: 0, c: "Hello" };const result = obj.a || obj.b || obj.c;문제 2const user = { settings: { theme: null, fontSize: "16px" } };const result = user.settings?.theme ?? "dark";문제 3const data = { key: undefined };const result = data.key ?? "default" || "fallback..
[JavaScript] 단축 평가와 옵셔널 체이닝 연산자, null 병합 연산자
·
📚STUDY/JavaScript
논리 연산자를 사용한 단축 평가논리합 또는 논리곱 연산자 표현식의 평가 결과는 불리언 값이 아닐 수도 있다. 논리합 또는 논리곱 연산자 표현식은 언제나 2개의 피연산자 중 어느 한 쪽으로 평가되기 때문이다."Cat" && "Dog" // "Dog"논리곱 (&&) 연산자는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환한다. 논리곱 연산자는 좌항에서 우항으로 평가가 진행되므로 첫 번째 피연산자 "Cat"부터 평가한다. 이때, "Cat"은 Truthy 값이므로 true로 평가되고, 이 시점까지는 위 표현식 자체를 평가할 수 없다. 결국 두번째 피연산자에 따라 논리곱 연산자 표현식의 평가 결과가 결정된다. 그리고 논리곱 연산자는 논리 연산의 결과를 결정하는 두 번째 피연산자를 그대로 반환한다. ..
[JavaScript] 자바스크립트 제어문(조건문, 반복문)
·
📚STUDY/JavaScript
제어문이란?제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다. 일반적으로 코드의 실행 흐름은 위에서부터 아래 방향으로 순차적으로 실행되지만, 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있다.이처럼 코드의 실행 순서를 번경하는 것은 가독성을 해친다는 단점이 있기 때문에, forEach, map, filter, reduce` 같은 고차 함수를 사용한 함수형 프로그래밍 기법에서는 제어문의 사용을 억제하려고 노력한다. 블록문블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부른다. 블록문은 단독으로 사용할 수도 있지만, 일반적으로 제어문이나 함수를 정의할 때 사용한다.문의 끝에는 세미콜론을 붙이는 것이 일반적이나, 블록문은 자체 종결성을 갖기 때문에..
[JavaScript] 자바스크립트 연산자 ② 논리, 쉼표, 그룹, typeof, 지수, 그 외
·
📚STUDY/JavaScript
논리 연산자논리 연산자는 우항과 좌항의 피연산자를 논리 연산한다.논리 연산자의미||논리합(OR)&&논리곱(AND)!부정(NOT) 논리 부정(!) 연산자는 언제나 불리언 값을 반환한다. 피연산자가 불리언 값이 아니라면 불리언 타입으로 암묵적 타입 변환된다.true || false; // truefalse || false; // falsetrue && true; // truetrue && false; // false!true; // false!0 // true!'Hello' // false 논리합(||), 논리곱(&&) 연산자 표현식의 평가 결과는 불리언 값이 아닐 수도 있다. 논리합, 논리곱 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다. 이는 단축 평가와 깊은 연관이 있다."Cat" ..
[JavaScript] 자바스크립트 연산자 ① 산술, 할당, 비교, 삼항 조건
·
📚STUDY/JavaScript
연산자란?연산자(operator)는 하나 이상의 표현식을 대상으로 산술, 할당, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 이때 연산의 대상을 피연산자(operand)라 하고, 피연산자는 값으로 평가될 수 있는 표현식이어야 한다. 또한 피연산자와 연산자의 조합으로 이뤄진 연산자 표현식도 값으로 평가될 수 있는 표현식이다.  산술 연산자산술 연산자는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다. 산술 연산이 불가능한 경우 NaN을 반환한다. 산술 연산자는 피연산자의 개수에 따라 이항 산술 연산자, 단항 산술 연산자로 나뉜다.이항 산술 연산자이항 산술 연산자는 2개의 피연산자를 산술 연산하여 숫자 값을 만든다. 이항 산술 연산자는 부수 효과가 없기 때문에, 피연산자의 값..