Dev-dotoli TIL

JS 9-4




조건문

demo8.html

- 논리 연산자2


  • ! : not operator 부정, bool값을 역전시킴

    if (!true && !true) {
      alert(1);
    } //실행안됨
    if (!false && !true) {
      alert(1);
    } //실행안됨
    if (!true && !false) {
      alert(1);
    } //실행안됨
    if (!false && !false) {
      alert(4);
    } //4
    



  • boolean의 대체제

    꼭 true 나 false가 아니어도 bool로 간주되는 값이 있다

    • 01 : JS에서 숫자 1은 true로 간주됨
      이외의 숫자는 false로 간주함

      가급적이면 코드를 이런식으로 작성하지는 마라

      if (0) {
        alert(1);
      } //실행안됨
      if (1) {
        alert(2);
      } //2
      


    • 기타 false로 간주되는 데이터 형

      • ’’: 빈문자열
      • a: 값이 할당되지 않은 변수
      • NaN: Not a Number
      • null: 값이 null로 할당됨
      • undefined: 값이 할당되지 않은 (정의되지 않은) 변수

        • NaN: JS에서만 존재하는 ‘숫자가 아니다’를 의미하는 값
        • null: 변수는 존재하지만 null로 값이 할당된 상태 즉 자료형이 정해진(defined) 상태 (독일숫자 0)
        • undefined: 변수는 존재하지만 어떠한 값도 할당되지않아
          자료형이 정해지지(undefined) 않은 상태
      if (!"") {
        alert("빈 문자열");
      } //빈 문자열
      var a;
      if (!a) {
        alert("값이 할당되지 않은 변수");
      } //값이 할당되지 않은 변수
      if (!NaN) {
        alert("NaN");
      } //NaN
      if (!null) {
        alert("null");
      } //null
      if (!undefined) {
        alert("undefined");
      } //undefined
      
      //false로  간주되는 값들이므로 !붙여서 alert을 실행시킴