211129 TIL[JS]論理演算子


論理演算子

  • 論理演算子右項と左項の被演算子(否定論理演算子、右項の被演算子)を論理演算する.
  • |:論理結合(OR)はtrueを返しますが、trueは1つしかありません.->左の演算子がtrueの場合、高速計算(//true)
    最後のFalsy値または最初に遭遇したTruthy値を返します.
  • &:論理乗算(AND)は、両方がtrueの場合にのみtrueを返します.->左の演算子がfalseの場合、クイック評価(//false)
    最後のTruthy値または最初に遭遇したFalsy値を返します.
  • ! : 否定(NOT)
  • デモルガンの法則

    !(x || y) === (!x && !y)
    !(x && y) === (!x || !y)

    質問する

    //1번문제 
    false || true //true 
    
    //2번문제
    true && false // false 
    
    //3번문제
    !true // flase
    
    //4번문제
    !((true && false) || (true && false)) // true
    
    //5번문제
    let x = 10
    !((x % 5 == 0 && x % 2 == 0) || (x / 2 == 5 && false)) // false
    
    //6번 문제
    let y = 10
    (false && y % 2 == 0) && (y / 2 == 5 && false) // false
    
    //7번문제
    let z = 3
    (true && z % 3 == 0) || (z / 2 !=!= 5 && false) 
    // !=!=는 잘못된 문법. 과연 뒤에것을 볼 필요가 없을 때, Code는 뒤에 것을 확인하는가를 보기위해서 넣음 -> 단축 평가와는 별개로 에러는 잡음
    // error
    
    //8번문제
    let job = true;
    job && '완료' || '미완료'; // '완료'
    
    //9번문제
    let job = false;
    job && '완료' || '미완료'; //'미완료'

    タイプ変換


    1.booleanタイプに変換

  • 数字、文字列、オブジェクトなどはブール型
  • に変換可能である.
  • Boolean()
    新しい演算子を必要とせずにBoolean()コンストラクタを呼び出し、ブール型に変換する方法
  • Boolean('') // false
    
    Boolean(' '); //true
    
    Boolean(0); //false
    
    Boolean(3); //true
    
    Boolean(-1); //true
    
    Boolean({}); //true
    
    Boolean([]); //true
    
    Boolean(Symbol()); //true
  • !!
    否定論理演算子(!)2回連続してブール型に変換する方法、2重否定によって元のブール型
  • に戻る方法
    !!true
    true
    
    !!'Kim'
    true
    
    !!''
    false
    
    !!' '
    true
    
    !!1
    true
    
    !!0
    false
    
    !!null
    false
    
    !!undefined
    false
    
    !!NaN
    false

    2.タイプをstringのnumberに変換

  • parseInt()
    文字列パラメータを整数として返す関数
  • parseInt('123'); //123
    parseInt('123sdf'); //123
  • Number()
  • の数値に変換されたパッケージオブジェクト.
  • ジェネレータを使用しない場合(new演算子を使用しない場合)、変換できます.
  • 目的性の場合、数値に変換する場合は、数値()ではなく解析Int()を使用します.
  • +x
  • 文字から
  • 文字に変換
    let x = '10000';
    //문자를 숫자로 바꾸어 반환
    +x;  //10000
    //본래 변수 x에 저장된 값은 변하지 않음
    x; //'10000'
    
    //재할당
    x = +x;
    x; //10000
  • 解析器Int()は数字に変換して数字を返すことしかできませんが、+メソッドは変換できない文字がある場合はNaN
  • を返します.
    let x = '123abc';
    passeInt(x); // 123
    +x; // NaN