[JS] 알고 넘어가자 Part.1

바보 개발자·2020년 9월 25일
0

JavaScript

목록 보기
10/12

JS 알고 넘어가자 Part.1

var로 변수 선언시 따로 타입을 명시 해주지 않아도됨. 이는 런타임시 변수값에 의해 동적으로 타입이 결정됨.

이를 동적바인딩(Dynamic Binding)이라고함.

== : 값만 일치하는지 검사

=== : Type 까지 일치하는지 검사

NULL = 비어있거나 존재하지 않는 값. ( 비었다고 고의로 명시해줌.)

Undefined = 변수를 정의해뒀지만 아예 손대지 않아서 아무 값도 할당받지 않는 상태.

var value1 = null;
console.log(value1);
//result : null


var value2
console.log(value2);
//result : undefined

` = 템플릿 문자열

템플릿 문자열을 이용하면 ${표현식}을 이용한 삽입처리 가능.

삽입처리란? : 표현식의 계산된 결과가 문자열로 변경되어 해당위치에 삽입되는 것.

템플릿 문자열의 특징 : MultiLine이 가능해서 코드 작성시 개행하면 그대로 개행되서 출력됨.

var a = [
  { kor: "한국", eng: "korea" },
  { kor: "중국", eng: "china" },
];
var space = `
${a[0].kor}${a[0].eng}
${a[1].kor}${a[1].eng} 
${a.length}
`;
console.log(space);

//result : 
한국korea
중국china 
2

객체(Object): 값들을 그룹으로 묶은 데이터모음

{Key : Value}를 한쌍으로 정의하며 이를 속성(Properties)라고 부름.

하나의 키에는 하나의 값이 매핑.

중복된 키 이름 사용불가.

var x = {
  name : "kim",
  age : 15
}
console.log(x);

//result:{ name: 'kim', age: 15 }
JSON (JSObjectNotation): 자바스크립트의 객체와 매우 유사한 구조를 지닌 데이터 교환 형식

객체와 다른점은 Key값이 무조건 " "로 감싸져있어야한다.

객체에서의 사용 {Key : value}

Json에서의 사용 {"Key":value}

[
  {
     "name": "kim",
      "Age":14    
  },
  {
    "name": "yun",
     "Age":17    
 }
];

함수 arguments 객체

function sum() {
  var total = 0;
  for (var i = 0; i < arguments.length; i++) total += arguments[i];
  return total;
}
console.log(sum(1, 2, 3, 4));
//result : 10

위 코드처럼 함수에서 파라미터를 입력받지 않아도 argument에 모든 파라미터가 담긴다.

JavaScript는 전달 인자의 개수와 매개변수의 개수가 달라도 에러를 발생시키지 않는다.

함수 Rest Parameter

ES6에서 새로 추가된 문법.

function sum(a,b,...args) {
  var total = 0;
  for (var i = 0; i < args.length; i++) total += args[i];
  return total;
}
console.log(sum(1,2))
console.log(sum(1,2,3))
console.log(sum(1, 2, 3, 4));
//result :  0
		// 3
		// 7

이 처럼 ...연산자를 사용해 RestParameter를 사용하면 정의되지 않은 나머지 3,4는 args에 배열 형태로 담긴다.

Rest Parameter 더 알아보기

호이스팅

간단정리: 호이스트란 건설현장에서 화물 운반에 사용되는 장비이고 이 장비는 화물 등을 들어올리는 업무를 수행.

즉, 아래에 위치한 것을 위로 끌어올리는 역할을 하는 장비.

JavaScript에서 호이스팅은 코드에 선언된 변수 및 함수를 코드 상단으로 끌어 올리는 것.

이는 변수 범위가 Global이나 Local이냐에 따라 다르게 수행됨

(함수에서는 함수의 최상단으로, 전역에서는 스크립트단위의 최상단으로.)

단, 선언과 할당 모두 상단으로 끌어 올리는 게 아니라 선언부분만 분리하여 최상위로 끌어올림.

선언된 변수에 값을 할당하는 내용은 원래 그 라인에 있음.

함수 호이스팅은 선언 방식이 함수 선언식인 경우에만 적용된다.

profile
일단 해보자

0개의 댓글

관련 채용 정보