Javascript/개념(22)
-
[JS] 깊은복사 / 얕은복사
1.깊은복사 (원시타입) / Call By Value(값에 의한 호출) 원시 타입(primitive type)의 데이터가 복사 될때는 새로운 메모리 공간을 생성하여 메모리에 독립적인 값을 저장 let a = 1 let b = a console.log(a)// 1 console.log(b)// 1 a = 2 console.log(a)// 2 console.log(b)// 1 2. 얕은복사 (참조타입) / CallByReference object(객체,배열, 함수)와 같은 참조 타입(reference type) 데이터는 애초에 저장 시 데이터에 대한 주소 (힙(Heap) 메모리의 주소값)가 저장되기 때문에 복사 시 값 자체가 아닌, 해당 값을 가리키는 주소가 복사된다. 원시타입(String, Number, ..
2021.11.30 -
[JS] 원시타입 / 참조타입 (객체,배열비교)
1. 원시타입 원시 타입은 영어로 Primitive Type이라고 하며 다른 말로 기본 타입이라고도 한다. 원시 타입의 특징은 값이 변하지 않는다는 것이며, 모두 하나의 '값'을 담고 있다. 그 종류는 String/ Number/ Null/ Undefined/ Boolean/ Symbol 이 있다. 2. 참조타입 참조타입은 Reference Type 이라고도 하며 값의 변화가 가능하다. 참조 타입은 변수에 할당할 때에는 값이 아닌 '주소'를 저장한다. 배열, 객체, 함수가 대표적이다. 변수는 주소를 저장하고, 주소는 특별한 동적인 데이터 보관함에 보관되는데 이 데이터 보관함을 heap(힙)이라고 한다. 값을 재할당 할 경우 주소를 참조한 모든값이 영향을 받는다. 즉 공유된다. 객체비교 const obj1..
2021.11.30 -
[JS] 배열 메소드
보호되어 있는 글입니다.
2021.11.16 -
[JS] 문자열 메소드
1. toUpperCase : 대문자 const str = 'kim kyeong min' const upper = str.toUpperCase(); console.log(str) // kim kyeong min console.log(upper) // KIM KYEONG MIN 2. toLowerCase : 소문자 const str = 'KIM KYEONG MIN' const low = str.toLowerCase(); console.log(str) // KIM KYEONG MIN console.log(low) // kim kyeong min 3. substr : (시작 인덱스, 길이) const str = 'apple' const substr = str.substr(1, 2); console.log(st..
2021.11.16 -
[JS] Null / Undefined
null null은 NULL의 심볼이며, 의도를 갖고 변수에 null을 할당하여 값이 없다는 것을 나타낸다. null이 할당된 변수의 타입을 확인해 보면 object인 걸 확인할 수 있다 undefined 변수를 선언하고 값을 할당하기 전의 형태(값)라고 볼 수 있다. (*변수에 값이 할당되어 있지 않음.) let a = null console.log(a) // null console.log(typeof a) // object let b console.log(b) // undefined
2021.11.15 -
[JS] 전역변수와 지역변수
1. 전역에서 선언한 변수는 소스 코드전체에서 전역 변수 전역이란, 간단하게, 중괄호로 묶어놓은 영역의 밖 2. 지역에서 선언한 변수는 지역 변수 지역변수는 그 지역을 벗어나게 되면 할당이 해제되어 사라짐 var로 선언한 지역변수는 함수 스코프를 가지기 때문에, 그 함수 안에서만 존재 let으로 선언한 지역변수는 블록 스코프를 가지기 때문에, 그 블록 안에서만 존재 const 역시 let과 동일한 스코프 var a = 0 var a = 1 // 오류x let b = 0 let b = 1 // 오류o 3. 스코프 : 변수 등에 접근할 수 있는 범위 { const name = 'min' console.log(name) // min } console.log(name) // 결과 없음 let age = ..
2021.11.15 -
[JS] 변수
1. Var let const Var : 키워드는 변수, 함수스코프 es5 중복선언 O let : 키워드는 변수, 블록스코프 { } es6 중복선언 X 값을 변경할 수 있다 단, 다른 블록 범위에서 똑같은 이름으로 사용 가능 Const : 키워드는 상수, 블록스코프 { } es6 값을 변경할 수 없다. 값이 변하지 않는 상수이므로 선언과 동시에 값을 선언 해줘야함 2. 호이스팅 hoisting : 끌어올리다 Var (don’t ever use this ) Var hoisting // 어디 선언했냐의 상관없이 항상 제일위로 선언을 끌어 올려주는 것 Has no block scope // 지역변수가 전역변수에서도 보이게됨 Let, const 는 호이스팅이 불가능 x = 5; var x; console.log..
2021.11.15