자바스크립트 연산자
본문
아래의 자바스크립트를 활용할 예정입니다. 아래의 내용중, 3번째 줄에,
var walkkTime = distance / 67 | 0;
이게 무슨 뜻인가요? | 도 연산자인가요? 첨봐서.. | 0 이게 뭔지는 몰라도 이거 없어도 되는거 아닌가요??
감사합니다.
function getTimeHTML(distance) {
// 도보의 시속은 평균 4km/h 이고 도보의 분속은 67m/min입니다
var walkkTime = distance / 67 | 0; // 이부분이 이해가 안가네요...ㅠ
var walkHour = '', walkMin = '';
// 계산한 도보 시간이 60분 보다 크면 시간으로 표시합니다
if (walkkTime > 60) {
walkHour = '<span class="number">' + Math.floor(walkkTime / 60) + '</span>시간 '
}
walkMin = '<span class="number">' + walkkTime % 60 + '</span>분'
// 자전거의 평균 시속은 16km/h 이고 이것을 기준으로 자전거의 분속은 267m/min입니다
var bycicleTime = distance / 227 | 0;
var bycicleHour = '', bycicleMin = '';
// 계산한 자전거 시간이 60분 보다 크면 시간으로 표출합니다
if (bycicleTime > 60) {
bycicleHour = '<span class="number">' + Math.floor(bycicleTime / 60) + '</span>시간 '
}
bycicleMin = '<span class="number">' + bycicleTime % 60 + '</span>분'
// 거리와 도보 시간, 자전거 시간을 가지고 HTML Content를 만들어 리턴합니다
var content = '<ul class="dotOverlay distanceInfo">';
content += ' <li>';
content += ' <span class="label">총거리</span><span class="number">' + distance + '</span>m';
content += ' </li>';
content += ' <li>';
content += ' <span class="label">도보</span>' + walkHour + walkMin;
content += ' </li>';
content += ' <li>';
content += ' <span class="label">자전거</span>' + bycicleHour + bycicleMin;
content += ' </li>';
content += '</ul>'
return content;
}
!-->
답변 2
| 는 비트 OR 연산자로서
distance / 67 의 결과에서 소수점이하를 잘라내고 0 과 OR 연산을 수행합니다.
distance / 67 | 0 는 Math.floor( distance / 67 ) 과 같다고 보시면 됩니다.
저도 처음 봤는데요. 비트연산자라고 하네요^^
답변을 작성하시기 전에 로그인 해주세요.