[JavaScript] 기본정리

hoya.a·2022년 4월 13일
0

자바스크립트

목록 보기
2/2
post-thumbnail

잘 몰랐던 개념정리..

1.변수

primitive타입과 object의 차이점

// 변수는 프로그래밍 언어에서 데이터를 담고 있다.
number, string, boolean, null, undefined 가 있다.
이걸 제외한 모든 데이터 타입은 모두 오브젝트이다.

오브젝트란?

최소한 한두가지 다양한 데이터를 한군데 묶어놓은것이다.
(함수도 오브젝트!)

-> 메모리에는 name과 age라는 공간이 생기고 각각의 value가 값으로 들어간다. 각 위치의 레퍼런스가 존재

number, string, boolean 은 데이터 자체가 변수에 담겨있어서 데이터 자체가 복사되지만, 오브젝트는 오브젝트를 가리키고 있는 주소만 복사해온다.

변수를 선언하면 데이터를 담을 수 있는 공간이 할당 되고 이름이 할당된 공간을 가르킨다.

데이터가 작은 number, string, boolean, null, undefined 은 메모리에 그대로 들어오지만 오브젝트같이 뚱뚱한 변수는 어딘가에 할당되어있고 거기를 가르키는 reference라고 한다. (ref가 오브젝트에 들어가있음)
그래서 오브젝트를 통해서 데이터를 변경하면 오브젝트가 가르키고 있는 데이터가 엽데이트 된다.

let은 나중에 값을 변경할 수 있다.
const는 선언 이후에 값을 변경할 수 없다.

const obj = {
	name: 'ellie',
    age: 5,
}

obj ={
	name: 'james',
    age: 7;
}

이렇게 못함. obj가 reference로 잠겨있다.
하지만 obj.name 으로 name의 값은 변경 가능.
ref가 가르키는 곳의 값을 변경시켜 가져오기 때문

2.함수

함수정의 호출 그리고 콜백함수

함수를 선언할 때 function을 쓴다.

function name(a, b) {
	return a + b;
}

name이라는 함수는 a,b 인자를 받고 a+b를 반환

  • 자바스크립트는 타입이 없다.

3. operater,if,for,loop

|| (or) 작성할때는 하나라도 true 이면 true를 반환 하기 때문에 간단한 값을 앞으로 보내는게 좋다.

&& (and) 작성을 할 때에도 하나라도 false이면 false이기 때문에 간단한 값을 앞으로 보내는게 좋다.

===은 타입의 동일성도 보기때문에 ==보다는 ===을 쓰는게 좋다.

switch operater

const browser = 'IE';
switch (browser) {
	case 'IE':
    	console.log('go away!');
        break;
    case 'Chrome';
    case 'Firefox';
    	console.log('love you!');
        break;
    default;
    	console.log('same all!');
        break;
}

browser가 IE일때 구문을 출력
같은 명령을 실행하는 것끼리는 한번만 써줄 수 있음.

while 문

let i = 3;
while (i>0) {
	console.log(`while: ${i}`);
    i--;
}

do while 문

do {
	console.log(`do while: ${i}`);
    i--;
}   while (i >0);

while문은 조건이 맞으면 실행
do while 문은 일단 실행하고 조건이 안맞으면 실행을 멈춘다.

for loop

// for loop, for(begin; condition; step)
for (i = 3; i > 0; i--) {
	console.log(`for: ${i}`);
}

for (let i = 3; i > 0; i = i -2) {
	console.log(`${i}`);
}

begin은 처음 한번만 호출한 후 조건이 안맞을때까지 실행한다.

if문은 true여야만 실행된다.

  • 빈 배열도 true이다.
    false일때는 실행 x
    예시: 0, -0, '', null(값이 비어있음), undefined(정의 되지 않음)

let num; 이렇게 선언후 값을 넣지 않으면 undefined가 할당되어 있다.

num && console.log(num);
이런식으로 AND연산자를 사용해서 num이 값이 있으면 뒤를 실행하고 없으면 실행 안하게 만들 수 있다

4. 콜백함수

class Counter {
	constructor() {
    	this.counter = 0;
    }

	increase() {
		this.counter++;
    	console.log(this.counter);
	}
}
profile
TIL 정리

0개의 댓글