JavaScript

김태욱·2023년 1월 8일
0

Javascript

목록 보기
1/5

컴퓨터의 구성요소(메모리)

하드디스크 - CPU - Memory

문서를 열면 하드디스크에 저장된 우리가 폴더안에 들어가 어떤것을 선택하고 열고 cpu가 처리해서 하드디스크에 있는 문서 파일을 메모리상으로 가지고 오게된다 그리고 이 파일을 열고 처리 할 수 있는 어플리케이션을 우리 화면 모니터에 열게 된다 .
각각의 메모리셀은 1byte 사이즈로 이루어져있고 1byte는 8bit이다 .

값과 참조의 차이

원시(primitive) 타입과 객체(object) 타입이 존재한다.
원시타입은 메모리셀안에 값이 바로 들어가 있고 변수가 그 메모리 자체를 가리키고있다!!

let a= 1
let b= a
a=1 b=1 값 자체가 복사된다 !
b = 2
a=1 b=2 여전히 a는 1 b= 2 객체와 다름

객체타입은 객체가 들어있는 메모리 주소를 보관하고 있다!! 객체는 참조값 메모리 주소가 들어가 있다!

let apple ={
Name : 사과,
}
let orange = apple ;

Orange.name = 오렌지

둘다 오렌지로 바뀜

값 주소값이 복사되어서 복사된다!

오브젝트에 있는것을 변형하면 모두 변형이 된다

변수

let 재할당 가능
const 재할당이 불가능
const = 상수라고 불리고 상수변수 또는 변수라고 불림

const 변수 =

상수처럼 사용하고 싶을때
const MAX_FRUITS = 5;
대문자와언덜스코어로 불리시켜줘야한다 = 상수처럼 사용

객체는 변경이 가능한이유 참조값이여서 참조 객체 즉 오브젝트는 변경이 가능하다 가리키고 있는 오브젝트의 값은 변경이 가능하다!

typeof
실행할때 할당된 값에 따라 타입이 결정된다.

Ex) let variable
Console.log(typeof variable);
Undefined
자바스크립트는 동적으로 실행이 될때 어떤 값이 할당된값에 따라 타입이 결정된다
자바스크립트는 위클리 타입이다 . 약하게 타입이 결정된다.

연산자

할당 연산자
축약
Ex) let a = 2
a = a + 1 // a=3

let b= 2
b += 1 // b= 3 <— b= b+1

증감 연산자

a= a+1 === a++;
a= a-1 ===a—;

a++ 필요한 연산을 하고, 그 뒤값을 증가시킴
++a 값을 먼저 증가하고 필요한 연산을 함

논리연산자 && 그리고 , \ 또는 , !=부정 반대로!

콜백함수

콜백함수 = 내가 나중에 호출해줄게
인자함수를 받는다 (콜백함수)
js에서 함수는 object라고 한다. 그래서, 함수는 다른 함수의 인자로 쓰일 수도 어떤 함수에 의해 리턴될 수도 있다. 이런 함수를 고차 함수라고 한다. 결국, 인자로 넘겨지는 함수를 콜백 함수라고 한다. 또한, 단지 함수를 등록하기만 하고 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출하는 함수!

function calculator(a, b, action) {
  let result = action(a, b);
  console.log(result);
  return result;
}

//전달된 action은 콜백함수이다 .
//전달된 당시에 함수를 발 호출해서 반환된 값을 전달하는 것이 아니라
//함수를 가리키고 있는 함수의 레퍼런스 (참조값)가 전달딘다
//그래서 함수는 고차함수안에서 필요한 순간에 호출이 나중이 됨

불변성의 중요성

함수내부에서 외부로부터 주어진 인자의 값을 변경하는것은 좋지않다
상태변경이 필요한 경우에는 새로운 상태를 (오브젝트 값) 만들어서 반환해야한다 .
원시 값은 = 값에 의한 복사를 하지만
객체값은 참조에 의한 복사 (메모리주소) 이기 때문에
참조한 값을 바꿔버리면 참조하고 있는 모든 변수들도 다 바뀌어 버린다 . 조심! (...)

profile
넘어보자

0개의 댓글