당신의 주된 관심사는 당신이 끊임없이 변수를 재정의하고 어떤 경우에는 의도 된 범위를 죽이는 것입니다. 일단 var
변수를 다시 사용하지 마십시오. 예를 들어, 당신은 : 그것은이 경우/다른 블록 내부의 범위를 가지고, 그래서 여기에 문제는 당신이 비용을 재정의한다
if (total<40)
{
var cost = parseInt(total) * 1.95;
}
else
{
var cost = parseInt(total) * 1.65;
}
var fare = cost;
. 그러면 cost
을 fare
에 할당 할 때 실제로는 fare
을 if 블록 외부에서 볼 수 없기 때문에 undefined로 설정하는 것입니다. 시도 :
/* code to get check box that indicates prices for 1.50 and 1.60 */
var check150 = document.getElementById("yourCheckIdFor150").checked ? true : false;
var check160 = document.getElementById("yourCheckIdFor160").checked ? true : false;
var cost = parseInt(total) * 1.65;
if(total < 40 && !check150 && !check160)
{
cost = parseInt(total) * 1.95;
}else if(check150 && !check160)
{
cost = parseInt(total) * 1.50;
}else if(!check150 && check160)
{
cost = parseInt(total) * 1.60;
}
var fare = cost;
fare = Math.round(fare*100)/100;
if(document.getElementById("doubleFare").checked)
{
fare = fare * 2;
}
을 당신은 당신이 요금 및 초기 비용에 대해 별도의 변수를 사용하고 단지 if(check160)
등이있는 경우에만 표시로 떨어져 else if
블록을 깰 필요합니다 다양한 값에 가격을 표시 할 경우 한 번에 하나의 옵션이 작동합니다.
어떤 부품이 고장 나고 어떻게 고장을 판단합니까? 다른 두 번 어떻게 부르니? 매번 var로 '운임'을 재정의하고 있습니까? 위의 예에서는 할당에서 요금을 사용하기 전에 요금을 일부 값으로 정의해야합니다. – scrappedcola
문제의 해결 가능한 문제가 없음을 나타내지는 않습니다. 보유하고있는 문제에 대한 설명과 함께 "효과가 없을 것"에 대한 설명을 게시하십시오. –
사용하기 전에 운임을 정의 하시겠습니까? var fare = Math.round (요금 * 100)/100; NaN 만 반환합니다. 일단 정의되면, 나쁜 형식 인 다른 함수에서 다시 범위를 지정하려는 경우가 아니면 var로 재정의하는 것을 삼가 할 수 있습니다. – scrappedcola