Самый простой способ исправить это - преобразовать в число с плавающей точкой уже в первой строке, а затем, если ввод не является числом, вернет NaN
, case не будет работать нормально. И см .:
NaN === NaN; // Returns false
isNaN(NaN); // Returns true
Другая проблема в том, что подсказка всегда возвращает строку или null
, насколько я знаю. Поэтому приведенный ниже код должен исправить вашу проблему:
function addD() {
var dataSin = parseFloat(prompt("What number do you want to add?"));
if(isNaN(dataSin)) {
document.getElementById("targetD").innerHTML = dataSin + " is not a number";
} else {
dataArr[dataArr.length] = dataSin;
document.getElementById("targetD").innerHTML = dataArr;
}
}
Это будет зависеть, на котором JVM Вы используете.
Предположение, что Вы не используете JVM со сжатыми указателями массив, использует:
Затем фактические объекты, которые Вы храните (ссылки на) в массиве, используют память в зависимости от того, какие объекты они. java.lang. Объект только содержит указатель на класс, так 8 байтов или 4 байта при использовании сжатых указателей.
Для Ваших собственных классов можно считать использование памяти путем рассмотрения полей в классе. Каждая ссылка использует 8 байтов (4 байта для сжатых указателей). Каждый долго 8 байтов, интервал 4 байта, символьные/короткие 2 байта, байт/булевская переменная 1 байт. Но все, они будут выровненные к ровному общему размеру, который является кратным любым 4 или 8 байтам, в зависимости от которых JVM Вы используете.