[TIL]JS演算と条件文


1.算術、代入演算

var++ // var에 1더하기
var-- // var에 1빼기
++var // var에 1더하기 
--var // var에 1빼기
var += 2 // var = var + 2
var *= 2 // var = var * 2
var++と++varの違い!!

2.比較演算

== // 동일한 값 (10 == '10' 참!)
=== // 동일한 값과 동일한 유형
!= // 같지 않음

3.論理演算

 and, or, not
 and == &&
 or == ||
 true = 1
 false = 0

3.2論理演算問題(了解)

1. false || true
>true
2. true && false
>false
2.1 false ||false
>false
3. !true
>false
4. !((true && false) || (true && false))
!(f || f)
!false
>true
5. let x = 10
  !((x % 5 == 0 && x % 2 ==0) || (x / 2 == 5 && false))
  !((0 == 0 && 0 == 0)||(5==5 && false))
  !((true and true) || 앞에가 트루니까 이건사실 볼 필요도 없음)
  !(true || false)
  !true
>false
6. let y = 10
  (false && y % 2 == 0) && (y / 2 == 5 && false)
  false 와 and 가 나왔으니 볼것도없이 false
  (f and 0==0) and (5==5 and f)
  f and f
>true
7. let z = 3
  (true && z % 3 == 0) || (z / 2 !=!=5 && false) 
  //!=!=는 잘못된문법
  (t and t) or (error and f)
  t or error
>error

4.typeof、フォーマットの変換


次の例では、理解ではなく暗記する必要がある部分も多い.
今は全部背負わないで、トランスフォーマーを背負うだけだ.
typeof()
かっこ内のデータ型を返します.
// 숫자 -> 문자열
123 + ''
'123'
// !는 부정을 의미. 이중부정을 통한 불리언값 반환
!!true
true
//''는 거짓. ' '는 참.(여백있음) '아무말'도 참
!!'hojun'
true
!!''
false
!!1
true
!!0
false
!!undefined
false
!!NaN
false
!true
false
!(!true)
true
'0' == 0
true
0 == ''
true
0 == '0'
true
//불리언의 false와 문자열인 'false'는 완전히 다름
false == 'false'
false
false == '0'
true
false == null
false
false == undefined
false
false == NaN
false
!!null
false
!!undefined
false
!!NaN
false
Boolean('false')
true
// false와 숫자 0은 엄연히 다름
false === 0
false
//그러나 의미적(?)으로는 같다
false == 0
true
//문자열 '0'과도 같다고 하는데, 이런 부분부터는 외워야 한다
false == '0'
true
let x = '10000'
undefined
//문자열인 '10000'을 숫자로 변환!
//Number() <- 이런 방법도 있지만 너무 효율성이 떨어짐
+x
10000
// - 를 붙이면서 숫자로의 변환도 가능하다. 그러나 + 와 - 는 차이가 있다
-x
-10000
+x
10000
// 애스터리스크로 곱하기를 통해 변환도 가능
x * 1
10000
+x
10000
x = -10000
-10000
x = '-10000'
'-10000'
+x
-10000
x = +x
-10000
x
-10000
Number('10')
10
parseInt('1230123', 10)
1230123
//parseInt는 숫자인 부분 까지만 변환해준다. 뒤의 10은 10진법을 의미
parseInt('1230123asdfasdf', 10)
1230123
x = '123asdfasdf'
'123asdfasdf'
//parseInt는 숫자인 부분까지 변환해주는 친절한 아이지만, +는 NaN을 반환
+x
NaN

条件文


5.1文の場合

if (조건1) {
  조건이 true일 때 실행되는 코드
} else if(조건2) {
  조건1false이고 조건2true일 때 실행되는 코드
} else {
  조건1, 2 모두 false일 경우 실행되는 코드
}
もし中に
if (true) {
  console.log(1);
  if (true) {
    console.log(2);
  }
}
以上の場合、1,2ともに出力されます.
ただし、最上位if文がfalseの場合、次の条件文も実行されません.
if以外のif.もう一つif
if (true) {
  console.log(1);
}  
if (true) {
  console.log(2);
}
上記の場合も1,2でも出力可能です.
個別の条件文であるため、最上位レベルの条件文が偽であっても、次の条件文が実行されます.
if (false) {
    console.log(1);
} else if(true) {
    console.log(2);
} else if(false) {
    console.log(3);
} 
if (true) {
    console.log(4);
}
if (false) {
    console.log(5);
} else if(true) {
    console.log(6);
} else if(false) {
    console.log(7);
} else {
    console.log(99);
}

>2 4 6
else:「そうでなければ」、すなわち、参加条件がすでに実行されている場合は、elseの後ろを表示する必要はありません.

5.2スイッチドア

switch (new Date().getDay()) {
  case 0:
    document.write('일요일입니다.')
    break;
  case 1:
    document.write('월요일입니다.')
    break;
  case 2:
    document.write('화요일입니다.')
    break;
  case 3:
    document.write('수요일입니다.')
    break;
  default:
    break;
}
new Date().getDay()#今日の曜日を数字で出力します.
日曜日から0日で始まります.
  • 今日が火曜日だと仮定して、私は「火曜日」と言います.印刷したいです.
  • new Date().getDay()の結果は2になります.
  • 印刷条件2のやつがほしい.
  • break; もしなかったら「水曜日です」に出力します.(終了するブレークポイントを作成)