https://ko.javascript.info/

자바스크립트의 타입

원시데이터타입 : boolean / Null / Undefined / Number / String /
참조데이터타입 : Symbol / Object(객체) / 배열 / 함수
biglnt?

  • 원시와 참조의 차이
    원시는 값 자체를 복사한다.
    참조는 저장된 주소를 복사한다.(앝은 복사)

변수선언

  • let
  • var

함수선언

function Func1(value){return value;}

  • 함수선언문(익명함수)
    var Func3 = function(value){return value;}
  • 람다(화살표함수)
    var Func3 = (value) => {return value;}

자바스크립트 스코프(scope) ?

참조 대상 식별자(identifier, 변수)를 찾아내기 위한 규칙

  • 함수 레벨 스코프 : 함수 코드 블록 내에서 선언된 변수는 함수 코드 블록 내에서만 유효하고 함수 외부에서는 참조 불가하다.
  • 전역스코프 : 코드 어디에서든지 참조할 수 있다.
    - 전역변수는 재할당에 의한 상태 변화로 코드를 예측하기 어렵게 만드므로 사용을 억제하여야 한다.
  • 지역스코프 : 함수 코드 블록이 만든 스코프로 함수 자신과 하위 함수에서만 참조할 수 있다.
  • 렉시컬 스코프 : 함수를 어디서 호출하는지가 아니라 어디에 선언하였는지에 따라 결정된다.

const / let / var 스코프차이

const / let : 블록스코프, 함수스코프
var : 함수 스코프

일급 객체 ?

다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체
=클래스

  • 변수에 할당할 수 있다.
  • 다른 함수를 인자로 전달받는다.
  • 다른 함수릐 결과로서 리턴할 수 있다.
    *함수가 일급객체이기 때문에 할 수 있는 것은?
  • 고차함수를 만들 수 있다.
  • 콜백을 사용할 수 있다.
    - 콜백함수 : 전달인자로 받는 함수

부동소수점 오류 ?

  • 자바, 자바스크립트, C, 파이썬에서도 계산 오류 존재

    컴퓨터는 2진법으로 동작하기 때문에 몇몇 소수는 10진법에서 2진법으로 변환하는 과정에서 무한소수가 되기도 한다.

  • 반올림함수로 해결

    toFixed() / Math.round()

얕은 복사 / 깊은 복사

얕은 복사 : 객체를 복사할 때 원래 값과 복사된 값이 같은 참조를 가리키고 있는 것을 말한다. 객체안에 객체가 있을 경우 한개의 객체라도 원본 객체를 참조하고 있다면 앝은 복사(같은 데이터(주소),같은 주소 참조) / 저장된 주소를 복사한다.

깊은 복사 : 객체 안에 객체가 있을 경우에도 원본과의 참조가 완전히 끊어진 객체(같은 데이터, 다른 주소) / 값 자체를 복사한다.

호이스팅

인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다.

  • 코드가 실행되기 전 변수선언 / 함수선언이 해당 스코프의 최상단으로 끌어올려진 것 같은 현상

window 객체

Only 브라우저에만 존재하는 객체
최상위객체이자 전역객체이면서 모든 객체가 소속된 객체

  • 함수선언식으로 함수를 선언하거나 var 키워드로 변수 선언하면 window객체
  • DOM(Document Object Model) : 문서객체모델

    객체지향모델로써 구조화된 문서를 표현하는 형식

  • BOM(Brower Object Model) : 브라우저 객체

    자바스크립트가 브라우저와 소통하기위해서 만들어진 모델

JSON ?

JSON(JavaScript Object Notation)은 속성-값 쌍(attribute–value pairs), 배열 자료형(array data types) 또는 기타 모든 시리얼화 가능한 값(serializable value) 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다. 특히, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는 데 적합하다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN