JS 67

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는 정적 분..

[코어 JS] 5.4 - 배열

5.4 배열 배열 키를 사용해 식별가능한 값을 담은 컬렉션은 객체라는 자료구조를 이용해 저장하는데 객체만으로도 다양한 작업이 가능 객체는 순서와 관련된 메서드가 없어서 불편하고 애초에 순서를 고려하지않는 자료구조이므로 '사이에' 끼워넣는 기능이 불가능, 순서가 있는 컬렉션이 필요할 때, 배열을 사용 배열 선언 //빈배열 생성 let arr = new Array(); let arr = []; let fruits = ["사과", "오렌지", "자두"]; 각 배열의 요소에는 0부터 시작하는 숫자(인덱스)가 있고, 이 숫자는 배열 내 순서를 나타냄, 배열 내 특정 요소를 얻을 때는 대괄호 안에 순서를 나타내는 숫자인 인덱스를 넣어서 확인 let fruits = ["사과", "오렌지", "자두"]; alert( ..

[코어 JS] 5.3 - 문자열

5.3 문자열 JS에는 글자 하나만 저장할 수 있는 별도의 자료형이 없음, 텍스트 형식의 데이터 길이에 상관없이 문자열 형태로 저장 JS에서 문자열을 인코딩 방식과 무관하게 항상 UTF-16 형식을 따름 따옴표 작은따옴표, 큰따옴표, 백틱 let single = '작은따옴표'; let double = "큰따옴표"; let backticks = `백틱`; 작은따옴표와 큰따옴표는 기능상 차이 없음, 표현식을 ${..}로 감싸고 백틱(`)으로 감싸고 문자열 중간에 넣어주면 해당 표현식을 문자열 중간에 삽입 가능 ( template literal) function sum(a, b) { return a + b; } alert(`1 + 2 = ${sum(1, 2)}.`); // 1 + 2 = 3. 백틱을 사용하면 ..

[코어 JS] 5.2 - 숫자형

5.2 숫자형 숫자형 모던 JS에서 숫자를 나타내는 두가지 자료형 1. 일반적인 숫자는 '배정밀도 부동소수점 숫자(double precision floating number)'로 알려진 64비트 형식의 IEEE-754에 저장 2. 임의의 길이를 가진 정수 BigInt, 일반적인 숫자의 범위 2-53 ~ 253 밖의 숫자 숫자를 입력하는 다양한 방법 let billion = 1000000000; //0의 갯수가 많아서 오류가 생길 수 있음 let billion = 1e9; // 10억, 1과 9개의 0 alert( 7.3e9 ); // 73억 (7,300,000,000) 'e' 의 오른쪽에 오는 수만큼 10의 거듭제곱 1e3 = 1 * 1000 1.23e6 = 1.23 * 1000000 1마이크로초(백만 ..

[코어 JS] 5.1 - 원시값의 메서드

5.1 원시값의 메서드 JS는 원시값(문자열, 숫자 등)을 객체처럼 다룰 수 있게 함 (ex. 메서드 호출) 원시값 vs 객체 원시값 - 원시형 값 - 문자(string), 숫자(number), bigint, 불린(boolean), 심볼(symbol), null, undefined 총 7가지 객체 - 프로퍼티에 다양한 종류의 값 저장 가능 - 대괄호{}를 사용해 생성, 함수도 객체의 일종 함수를 프로퍼티로 저장할 수 있다는 객체의 장점 let john = { name: "John", sayHi: function() { alert("친구야 반갑다!"); } }; john.sayHi(); // 친구야 반갑다! //객체 John //메서드 sayHi JS는 날짜, 오류, HTML 요소 등을 다룰 수 있게 하는..

반응형