if (new Date().getHours() > 21) {
alert("잘자요!");
}
위 코드처럼 if ( 조건 ) 이 참 true 면 { 내용 실행 }
지금 시간이 21시 보다 크면 alert("잘자요!")
그럼 21시 보다 작거나 같을 때는??
if 조건이 거짓 인 경우 else 코드 블록이 실행되도록.
if (new Date().getHours() > 21) {
alert("잘자요!");
}else{
alert("힘내요!")
}
자 여기에 조건이 많이 지면 어떻게 될까요??
지금 시간 == 8시 { "일어나요" }
지금 시간 == 12시 { "점심시간" }
지금 시간 == 18시 { "퇴근시간" }
지금 시간 == 22시 { "잠잘시간" }
var time = new Date().getHours();
if (time == 8) {
alert("일어나요");
} else if (time == 12){
alert("점심시간")
} else if (time == 18){
alert("퇴근시간")
} else if (time == 22){
alert("잠잘시간")
}
if를 사용하여지정된 조건에 해당하면 코드 블록을 실행
else를 사용하여 if같은 조건이 거짓 인 경우 else 코드 블록을 실행
사용은else if첫 번째 조건이 false 인 경우, 새로운 조건을 지정
if else if 단점은 조건을 다확인 한다는 거에요..
코드가 길어지면 길어질 수록 연산 해야 할게 많아 지는거지요~~
위와 같은 조건이 있다면~~
javascript switch = 선택문 사용하세요
다양한 조건 중 선택된 조건 실행
var time = new Date().getHours();
switch(time) {
case 8:
alert("일어나요");
break;
case 12:
alert("점심시간")
break;
case 12:
alert("퇴근시간")
break;
case 22:
alert("잠잘시간")
break;
default:
// 알람없음
}
switch 식을 한 번 평가됩니다.
식의 값이 각각의 경우의 값과 비교된다.
일치가있는 경우, 코드의 관련 블록이 실행됩니다.
switch 문에 break 문의 역할은 선택 블록을 실행하다 break를 만나면 switch 문을 벗어납니다.
결과만 필요할 Number.toFixed() 메서드를 사용해야 하지만 매번 소수점 자리 수를 찾는 건 좋은 방법이 아닐 수 있어요
예전에 계산해야 할 소수점을 []에 저장하고
for문을 돌려서 소수점이 가장 많은 개수를 가져와서 Number.toFixed() () 안에 넣을 수 있도록 했어요~~
function decimalFits(arr){//소수점 자리수가 가장많은 수 return
var decimalN = 0;
for(var j=0; j<arr.length; j++ ){
var n = arr[j];
if(!Number.isInteger(n)){ //소수
var d = String(n).split('.')[1].length; //문자열 소수점 다음 개수
if(decimalN < d)decimalN = d;
}
}
return decimalN;
}
var arr = [0.1, 0.12, 0.123]
decimalFits(arr); // 결과 : 3
Number.isInteger() - 정수인지 확인할 수 있는 메서드
3. Math. round, ceil, floor ( 반올림, 올림, 내림 )
반올림
Math.round(0.1); // 결과 : 0
Math.round(0.5); // 결과 : 1
올림
Math.ceil(0.1); // 결과 : 1
Math.ceil(0.5); // 결과 : 1
내림
Math.floor(0.1); // 결과 : 0
Math.floor(0.5); // 결과 : 0