JS/[책] 모던 JS deep dive 16

11장. 원시값과 객체의 비교

원시 타입(변경 불가능한 값, immutable value) 객체(참조) 타입(변경 가능한 값, mutable value) 변수(메모리 공간)에 실제값 저장 변수(메모리 공간)에 참조값 저장 값에 의한 전달(원시 값 복사) 참조에 의한 전달(참조 값 복사) 11.1 원시값 11.1.1 변경 불가능한 값 : 읽기 전용값, 데이터의 신뢰성 보장 //const 키워드를 사용해 선언한 변수는 재할당이 금지됨,, 상수는 재할당이 금지된 변수 const o = {}; //const 키워드를 사용해 선언한 변수에 할당한 원시값(상수)은 변경할 수 없음 //하지만 const 키워드를 사용해 선언한 변수에 할당한 객체는 변경할 수 있음 o.a = 1; console.log(o);//{a: 1} 변수에 할당된 원시값이 변..

7장. 연산자

7.1 산술 연산자 - 이항 산술 연산자 : 2개의 피연산자를 산술연산하여 숫자값을 만듦(ex. +, -, *, /, %) - 단항 산술 연산자 : 1개의 피연산자를 산술연산하여 숫자값을 만듦 (ex. ++, --, +, -) var = 5, result; //선할당 후증가_후위 연산자 result = x++; console.log(result, x);//5, 6 //선증가 후할당_전위 연산자 result = ++x; console.log(result, x); //7, 7 //선할당 후감소_후위 연산자 result = x--; console.log(result, x);//7, 6 //선감소 후할당_전위 연산자 result = --x; console.log(result, x); 5, 5 JS의 암묵적 타입..

6장. 데이터 타입

6.1 숫자 타입 : 모든 수를 실수로 처리하며 배정밀도 64비트 부동소수점 형식을 따름 *배정밀도 64비트 부동소수점 console.log(1 === 1.0);//true var bubary = 0b01000001;//2진수 var octal = 0o101;//8진수 var hex = 0x41;//16진수 console.log(binary);//65 console.log(octal);//65 console.log(hex);//65 console.log(binary === octal);//true console.log(octal === hex);//true Infinity : 양의 무한대 -Infinity : 음의 무한대 NaN : 산술 연산 불가 (nan(x), Nan(x)..) 6.2 문자열 타입 :..

5장. 표현식과 문

값 : 식이 평가되어 생성된 결과 * 모든 값은 데이터 타입을 가지며 메모리에 2진수 비트의 나열로 저장됨 ex. 0100 0001 = 65 or A 리터럴 : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 표현식 : 값으로 평가될 수 있는 문, 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조함, 숫자값으로 평가되는 표현식은 숫자값 대신 사용가능 //리터럴 표현식 10 'Hello' //식별자 표현식 sum person.name arr[1] //연산자 표현식 10 + 20 sum = 10 //함수, 메서드 호출 표현식 square(); person.getName() 문 : 프로그램을 구성하는 기본단위이자 최소 실행단위 토큰 : 문법적인 의미를 가지며 문법적으로 더이상..

4장. 변수

변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 그 메모리 공간을 식별하기 위해 붙인 이름 //변수는 하나의 값 저장을 위한 메커니즘이나 배열과 객체 같은 자료구조를 사용하면 여러개의 값을 그룹화해서 사용가능 var userId = 1; var userName = 'Lee'; //객체 var user = { id:1, name: 'Lee'} //배열 var users = [ {id: 1, name: 'Lee'}, {id: 2, name: 'Kim'} ]; 식별자 : 변수이름, 어떤 값을 구별해서 식별할 수 있는 고유한 이름, 식별자는 값이 아닌 메모리 주소를 기억함 변수선언 : 변수를 생성하는 것, 값을 저장하기 위한 메모리 공간을 확보하고 변수이름과 확보된 메모리 공간의 주소를 연결하여 ..

20강 - strict mode

20.1 strict mode란? function foo(){ x = 10; } foo(); console.log(x); JS엔진은 변수 x가 선언된 위치를 찾기위해 스코프 체인을 통해 검색(foo함수 스코프 -> 전역 스코프) 변수의 선언이 존재하지않으므로 ReferenceError를 예상하나 JS엔진은 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성하여 전역변수처럼 사용하도록 함(암묵적 전역, implicit global) -> 오류 발생의 원인이 될수있므로 var, let, const를 필수적으로 사용! 실수 방지를 위해 ES5부터 strict mode(엄격모드) 추가 : 오류발생 가능성이 있거나 JS엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러 발생 ESLint는 정적 분..

반응형