221121_TIL

·2022년 11월 22일
0

Javascript

불린값은 비교 결과를 저장할 때도 사용된다.
null값은 오로지 null값만 포함하는 별도의 자료형이다.

"use strict";
let isGreater = 4 > 1;
alert( isGreater ); // true (비교 결과: "yes")
let age = null;은 나이(age)를 알 수 없거나 그 값이 비어있음을 보여줍니다.

typeof 연산자

- typeof 연산자는 인수의 자료형을 반환한다. 자료형에 따라 처리 방식을 다르게 하고 싶거나 변수의 자료형을 빠르게 알아내고자 할 때 유용하다.
그리고 두 가지 형태의 문법을 지원하는데,

> 1. 연산자 : typeof x
2. 함수 : typeof(x)

괄호가 있든 없든 결과는 동일함. typeof x 를 호출하면 인수의 자료형을 나타내는 문자열을 반환한다.

typeof undefined // "undefined"

typeof 0 // "number"

typeof 10n // "bigint"

typeof true // "boolean"

typeof "foo" // "string"

typeof Symbol("id") // "symbol"

typeof Math // "object"  (1)

typeof null // "object"  (2)

typeof alert // "function"  (3)

마지막 3줄의 설명

  1. Math는 수학 연산을 제공하는 내장 객체이므로 "object"가 출력됩니다. Math에 대해선 숫자형 챕터에서 학습하도록 하겠습니다. 내장 객체는 객체형이라는 것을 알려주기 위해 이런 예시를 작성해 보았습니다.
  2. typeof null의 결과는 "object"입니다. null은 별도의 고유한 자료형을 가지는 특수 값으로 객체가 아니지만, 하위 호환성을 유지하기 위해 이런 오류를 수정하지 않고 남겨둔 상황입니다. 언어 자체의 오류이므로 null이 객체가 아님에 유의하시기 바랍니다.
  3. typeof는 피연산자가 함수면 "function"을 반환합니다. 그러므로 typeof alert는 "function"을 출력해줍니다. 그런데 '함수’형은 따로 없습니다. 함수는 객체형에 속합니다. 이런 동작 방식이 형식적으론 잘못되긴 했지만, 아주 오래전에 만들어진 규칙이었기 때문에 하위 호환성 유지를 위해 남겨진 상태입니다. 한편, 실무에선 이런 특징이 매우 유용하게 사용되기도 합니다.
  • 자료형 요약

    요약
    자바스크립트에는 여덟 가지 기본 자료형이 있습니다.

    숫자형 – 정수, 부동 소수점 숫자 등의 숫자를 나타낼 때 사용합니다. 정수의 한계는 ±253 입니다.

    bigint – 길이 제약 없이 정수를 나타낼 수 있습니다.

    문자형 – 빈 문자열이나 글자들로 이뤄진 문자열을 나타낼 때 사용합니다. 단일 문자를 나타내는 별도의 자료형은 없습니다.

    불린형 – true, false를 나타낼 때 사용합니다.

    null – null 값만을 위한 독립 자료형입니다. null은 알 수 없는 값을 나타냅니다.

    undefined – undefined 값만을 위한 독립 자료형입니다.
    undefined는 할당되지 않은 값을 나타냅니다.

    객체형 – 복잡한 데이터 구조를 표현할 때 사용합니다.

    심볼형 – 객체의 고유 식별자를 만들 때 사용합니다.

  • prompt()
    - 브라우저에서 제공하는 prompt()함수는 두 개의 인수를 받는다.

    result = prompt(title, [default])

    함수가 실행되면 텍스트 메시지와 입력 필드(input field), 확인 및 취소 버튼이 있는 모달 창을 띄워줌.

    title : 사용자에게 보여줄 문자열 (필수값)
    default : 입력 필드의 초깃값 (선택값)

  • confirm()
    - confirm 함수는 매개변수로 받은 question(질문)과 확인 및 취소 버튼이 있는 모달 창을 보여줍니다.
    - 사용자가 확인 버튼을 누르면 true, 그 외의 경우는 false를 반환합니다.

    let isBoss = confirm("당신이 주인인가요?");
    alert( isBoss ); // 확인 버튼을 눌렀다면 true가 출력됩니다.

  • 요약

브라우저는 사용자와 상호작용할 수 있는 세 가지 함수를 제공합니다.

1.alert()
메시지를 보여줍니다.

2.prompt()
사용자에게 텍스트를 입력하라는 메시지를 띄워줌과 동시에, 입력 필드를 함께 제공합니다. 확인을 누르면 prompt 함수는 사용자가 입력한 문자열을 반환하고, 취소 또는 Esc를 누르면 null을 반환합니다.

3.confirm()
사용자가 확인 또는 취소 버튼을 누를 때까지 메시지가 창에 보여집니다. 사용자가 확인 버튼을 누르면 true를, 취소 버튼이나 Esc를 누르면 false를 반환합니다.
위 함수들은 모두 모달 창을 띄워주는데, 모달 창이 떠 있는 동안은 스크립트의 실행이 일시 중단됩니다. 사용자가 창을 닫기 전까진 나머지 페이지와 상호 작용이 불가능합니다.

지금까지 살펴본 세 함수엔 두 가지 제약사항이 있습니다.

모달 창의 위치는 브라우저가 결정하는데, 대개 브라우저 중앙에 위치합니다.
모달 창의 모양은 브라우저마다 다릅니다. 개발자는 창의 모양을 수정할 수 없습니다.

형변환

숫자형으로 변환 시 undefined는 0이 아니라 NaN이 됩니다.
문자열 "0"" "같은 공백은 불린형으로 변환 시 true가 됩니다.

profile
- 배움에는 끝이 없다.

1개의 댓글

comment-user-thumbnail
2022년 11월 22일

정리 깔끔! 고생많으셨습니다!

답글 달기