니르바나
2k
2021-03-16 08:51:27
1
440

자바스크립트 ! 키워드와 bool 평가.


https://262.ecma-international.org/5.1/#sec-9.2


자바스크립트라는 언어는 기본적으로 명시적인 타입이 없습니다.

그로인해서 bool true/false 평가도 다른 언어들과 조금 다르게 할수 있죠.

그래서 bool평가 시 타입 별로 어떤 상황에서 true false로 평가되는지를 이해하고 있어야

예상치 못한 오류를 방지할 수 있습니다.

아래는 ECMA 스펙입니다.

보시면 undefined / null / number 0 or Nan /  String empty  / int 0가 false로 평가받는것을 알수 있습니다.

Table 11: ToBoolean Conversions

Argument TypeResult
UndefinedReturn false.
NullReturn false.
BooleanReturn argument.
NumberIf argument is +0𝔽, -0𝔽, or NaN, return false; otherwise return true.
StringIf argument is the empty String (its length is 0), return false; otherwise return true.
SymbolReturn true.
BigIntIf argument is 0, return false; otherwise return true.
ObjectReturn true.NOTE

An alternate algorithm related to the [[IsHTMLDDA]] internal slot is mandated in section B.3.7.1.

0
  • 댓글 1

  • Hide_D
    605
    2021-03-17 22:06:34 작성 2021-03-17 22:07:01 수정됨

    이런 내용 볼때마다 TypeScript가 참 잘 만든 언어가 맞다 싶어요.

    상식적과 벗어나는 부분들은 일단 Type Error 내고 동작 못하게 하니..

  • 로그인을 하시면 댓글을 등록할 수 있습니다.