Я замечаю что-то очень странное при тестировании одной из моих функций, которая проверяет достоверность чисел, я впервые заметил это при тестировании 'number.toString() [0]'. Если я завершу запись в журнал (fLetter (019272)); "0" всегда показывает "1".
После проверки в Интернете я не смог найти никаких проблем, связанных с использованием метода toString() для чисел, содержащих "0".
function numberValidate(number) {
var numCheck = [0, 5, 7, 8, 9];
var fLetter = number.toString()[0];
if (number.match(/^\d{6}$/)) {
for (var i = 0; i < 5; i++) {
if (fLetter == numCheck[i]) {
return false;
} else {
return true;
}
}
}
}
Я попытался проверить несколько других переменных теста с применением метода toString() и без него, и получил некоторые результаты, которые я не мог понять. ** Примечание. Добавление toString() дало те же результаты (выполняемые в JSfiddle)
var numTest = 00000000;
var numTest1 = 20203020;
var numTest2 = 011000110100;
var numTest3 = 01928;
var numTest4 = 012345;
console.log(numTest); //Returned 0
console.log(numTest1); //Returned 20203020
console.log(numTest2); //Returned 1207996480
console.log(numTest3); //Returned 1928
console.log(numTest4); //Returned Returned 5349
Может ли кто-нибудь пролить свет на то, почему я возвращаю эти значения? Благодаря