목록학습중.../(책)모던 자바스크립트 (8)
언젠간 진화하겠지!
p137 값에 의한 전달 : 원시값을 갖는 변수는 다른 변수에 할당되면 원본의 원시 값이 복사되어 전달 참조에 의한 전달 : 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조값이 복사되어 전달 한번 생성된 원시 값은 읽기 전용값으로서 변경할 수 없다. p138 변수: 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 변수 값: 변수에 저장된 데이터로서 표현식이 평가되어 생성된 결과, 변경 불가능 상수: 재할당이 금지된 변수,1번만 할당이 허용되므로 변수 값을 변경할 수 없음 원시값의 특성: 어떤 일이 있어도 불변.데이터의 신뢰성을 보장 원시값을 할당한 변수에 새로운 원시 값을 재할당하면 메모리 공간에 저장되어있는 재할당 이전의 원시 값을 변경하는 ..
p124 자바스크립트는 객체 기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 모든 것이 객체다. 원시 값을 제외한 나머지 값(함수, 배열, 정규표현식 등)은 모두 객체다. 원시값은 변경불가능한 값이지만 객체 타입의 값, 즉 객체는 변경 가능한 값이다. 자바스크립트에서 사용할수 있는 모든 값은 프로퍼티가 될 수 있다. 자바스크립트의 함수는 일급 객체므로 값으로 취급할 수 있는데, 프로퍼티값이 함수일 경우는 메서드라 부른다. p125 객체는 프로퍼티와 메서드로 구성된 집합체 프로퍼티: 객체의 상태를 나타내는 값 메서드: 프로퍼티를 참조하고 조작할수있는 동작 객체는 프로퍼티와 메서드를 포함할 수 있기때문에 상태와 동작을 하나의 단위로 구조화 할 수 있다 .-인스턴스 클래스에 의해 생성, 메모리에 저장..
왜 타스를 쓰는 방향으로 가는지 알게 된 파트! p108 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라 한다. 자바스크립트 엔진에 의해 암묵적으로 타입이 자동으로 변환되는 걸 암묵적 타입 변환 또는 타입 강제 변환이라 한다. p109 타입 변환이란 기존 원시값을 사용해 다른 타입의 새로운 원시값을 생성하는 것이다 자바스크립트 엔진이 표현식을 에러없이 평가하기 위해 피연산자의 값을 암묵적 타입 변환해 새로운 타입의 값을 만들어 단 한번만 사용하고 버린다. 작성한 코드에서 암묵적 타입 변환이 발생하는지, 발생한다면 어떤 타입의 어떤 값으로 변환되는지, 타입 변환된 값으로 표현식이 어떻게 평가될 것인지 예측가능해야 한다.예측하지 못하거나 예측의 결과와 일치하지 않는다면 ..
p93 제어문은 조건에 따라 코드블록을 실행하거나(조건문) 반복실행할 때(반복문) 사용한다. 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부른다. 자바스크립트는 블록문을 하나의 실행단위로 취급한다. 블록문은 단독으로 사용할 수도 있으나, 일반적으로 제어문이나 함수를 정의할 때 사용하는 것이 일반적이다. p94 조건문은 주어진 조건식의 평과 결과에 따라 코드블록의 실행을 결정한다. 조건식은 불리언 값으로 평가될 수 있는 표현식이다. 만약 if문의 조건식이 불리언 값이 아닌 값으로 평가되면 자바스크립트 엔진에 의해 암묵적으로 불리언값으로 강제 변환되어 실행할 코드 블록을 결정한다 p97 switch문은 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실..
p75 산술 연산자는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자값을 만든다. 산술 연산이 불가능 할 경우 NaN을 반환한다. p81 동등 비교 연산자(==)는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은값인지 비교한다. p82 일치 비교 연산자(===)는 암묵적 타입 변환 없이 값을 비교한다. *NaN은 자신과 일치하지 않는 유일한 값이다. 숫자가 NaN이 확인하기 위해서는 Number.isNaN 빌트인 함수를 사용한다. Number.isNaN(1+undefined) //true *자바스크립트에는 양의 0과 음의 0이 있는데 이들을 비교하면 true를 반환한다 Object.is 메서드 정확한 비교결과를 반환! Object.is(-0,+0)//fal..
한번 날리고 다시씀... p62 템플릿 리터럴은 멀티라인 문자열, 표현식 삽입, 태그드 템플릿 등 편리한 문자열 처리기능을 제공, 템플릿 리터럴은 런타임에 일반 문자열로 변환되어 처리 (``)로 표현 p66 undefined 개발자가 의도적으로 할당하기 위한 값이 아니라 자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값. 개발자가 의도적으로 변수에 할당한다면 undefined의 본래 취지와 어긋날뿐더러 혼란을 줄 수 있으므로 권장X 변수에 값이 없다고 명시하고 싶을 때는 null을 사용 p67 프로그래밍 언어에서 null은 변수가 값이 없다는 것을 의도적으로 명시할 때 사용. 이전에 할당되어있던 값에 대한 참조를 명시적으로 제거하는 것을 의미하며, 자바스크립트 엔진은 누구도 참조하지 않는 메모리에 대..
p47 언매니지드 언어와 매니지드 언어 언매니지드 언어(C언어) 개발자가 명시적으로 메모리를 할당하고 해제하기 위해 malloc()과 free()같은 저수준 메모리 제어기능을 제어 메모리 제어를 개발자가 주도할 수 있으므로 개발자의 역량에 따라 최적의 성능을 확보할 수 있지만 그 반대의 경우 치명적 오류를 생산할 가능성도 있다 매니지드 언어( 자바스크립트) 메모리의 할당 및 해제를 위한 메모리 관리 기능을 언어차원에서 담당하고 개발자의 직접적인 메모리 제어를 허용하지 않음. 개발자가 명시적으로 메모리를 할당하고 해제할 수 없음.사용하지 않는 메모리의 해제는 **가비지 콜렉터가 수행하게 된다. 개발자의 역량에 의존하는 부분이 상대적으로 작아져 어느정도 일정한 생산성을 확보할 수 있지만, 성능면에서 어느정도..
p15 자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원한다 p25 디버깅 source tab에서 breakpoint설정 https://ko.javascript.info/debugging-chrome Chrome으로 디버깅하기 ko.javascript.info p36 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기위해 붙힌 이름! p38-39 변수 이름을 식별자라고 한다. 식별자는 어떤 값을 구별해서 식별할 수 있는 고유한 이름을 말함. 식별자는 값이 아니라 메모리 주소를 기억하고 있음. p41 변수를 선언했을 때 변수이름을 등록하고 값을 저장할 메모리 공간을 확보한다. 메모리 공간은 비어있지 않고, 자바스크립트 엔진에 의해 undefi..