[모던자바스크립트 Deep Dive] 11장. 원시값과 객체의 비교 / 얕은복사와 깊은복사
·
JavaScript
1. 원시값원시 타입의 값, 즉 원시 값은 변경 불가능한 값이다. 한번 생성된 원시 값은 읽기 전용(read only) 값으로서 변경할 수 없다.원시 값을 변수에 할당하면, 메모리에 실제 값이 저장된다.원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사 되어 전달된다. 이를 값에 의한 전달(pass by value)이라 한다. 1-1. 불변성원시 값은 변경 불가능한 값이다.재할당은 가능하지만, 변하지 않는다. 변경이 불가능하기에 재할당 시에도 메모리 공간에서 값이 변하는게 아닌 새로운 메모리 공간을 확보하고, 재할당한 값을 저장한 후, 변수가 참조하던 메모리 공간을 변경한다.데이터의 신뢰성을 보장하며 이런 특성을 바로 불변성(immutabillity)라 한다.만약 값이 변한다면, 상태 ..
this, 메서드 축약, 일반 함수 표현식
·
JavaScript
1. this메서드로서 호출이 된다면, this는 그 메서드를 소유한 객체를 가리킨다.독립적으로 호출되면, 함수가 객체와 분리되어 호출되면 this는 전역객체(브라우저에서는 window, node.js에서는 global)를 가리킨다. 엄격모드(strict mode)는 this가 undefined 가 된다. 1-1. 일반 함수 표현식const obj = { myMethod: function() { console.log(this); }};// obj.myMethod()를 호출하면:obj.myMethod(); // 'this'는 obj를 가리킨다.// 그러나 메서드를 변수에 할당한 후 호출하면:const myFunction = obj.myMethod;myFunction(); // 'th..
[모던자바스크립트 Deep Dive] 10장. 객체 리터럴
·
JavaScript
1. 객체란?자바스크립트는 객체(object) 기반의 프로그래밍 언어이며, 원시값을 제외한 나머지 값(함수, 배열, 정규 표현식 등) 모두 객체이다.객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키(key)와 값(value)로 나뉜다. 원시타입단 하나의 값만 나타냄변경 불가능한 값(immutable value)객체타입다양한 타입의 값(원시 값, 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조객체는 변경이 가능한 값이다.(mutable value)프로퍼티객체의 상태를 나타내는 값(data)메서드프로퍼티(상대 데이터)를 참조하고 조작할 수 있는 동작(behavior)자바스크립트의 함수는 일급객체이므로 값으로 취급이 가능하다. 그래서 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메..
[모던자바스크립트 Deep Dive] 9장. 타입 변환과 단축 평가
·
JavaScript
1. 타입 변환이란?자바스크립트의 모든 값은 타입이 있다. 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환할 수 있다. 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환(explicit coercion)또는 타입 캐스팅(type casting)이라고 한다.var x = 10;// 명시적 타입 변환// 숫자를 문자열로 타입 캐스팅한다.var str = x.toString();console.log(typeof str, str); // string 10// x 변수의 값이 변경된 것은 아니다.console.log(typeof x, x); // number 10 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 한다.이를 암묵적 타..
[모던자바스크립트 Deep Dive] 8장. JavaScript 제어문
·
JavaScript
1. 제어문제어문(control flow statement)은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다. 일반적으로 코드는 위에서 아래 방향으로 순차적으로 실행된다. 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있다.하지만 코드의 실행 순서가 변경된다는 것은 단순히 위에서 아래로 순차적으로 진행하는 직관적인 코드의 흐름을 혼란스럽게 만든다.따라서 제어문은 코드의 흐름을 이해하기 어렵게 만들어 가독성을 해치는 단점이 있다. 가독성이 좋지 않은 코드는 오류를 발생시키는 원인이 된다. 나중에 살펴볼 forEach, map, filter, reduce 같은 고차 함수를 사용한 함수형 프로그래밍 기법에서는 제어문의 사용을 억제하여 복잡성을 해결하려고 노력한다.제..
[모던자바스크립트 Deep Dive] 7장. 연산자(operator)
·
JavaScript
1. 연산자연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 이때 연산의 대상을피연산(operand)라 한다. 피연산자는 값으로 평가될 수 있는 표현식이어야 한다.그리고 피연산자와 연산자의 조합으로 이뤄진 연산자 표현식도 값으로 평가될 수 있는 표현식이다. // 산술 연산자5 * 4 // 20// 문자열 연결 연산자'my name is ' + 'error' // 'my name is error'// 할당 연산자color = 'red' // 'red'// 비교 연산자3 > 5 // false// 논리 연산자true & false // false// 타입 연산자typeof 'hi' // string 피연산자가 '값'이라는 명사의 역할을 한..
오류확인자
'JavaScript' 카테고리의 글 목록 (6 Page)