javascript - Typescript : kontrollera om en sträng är ett nummer
Jag är ny inom webbutveckling, och i min funktion vill jag kontrollera om ett givet strängvärde är ett nummer. Om strängen inte är ett giltigt nummer vill jag returnera null.
Följande fungerar i alla fall utom när strängen är "0", i vilket fall den returnerar null.
parseInt(columnSortSettings[0]) || null;
Hur förhindrar jag att detta händer. Uppenbarligen betraktar inte parseInt 0 som ett heltal!
Svar #1
Eftersom 0 fungerar som falskt, kan du använda isNaN() i det här fallet
var res = parseInt(columnSortSettings[0], 10);
return isNaN(res) ? null : res;
Svar #2
Det är för att du i princip testar 0 som också är falskt. Du kan göra
var n = columnSortSettings[0];
if(parseInt(n, 10) || n === '0'){
//...
}
Du kan också testa istället om det är ett nummer
if(typeof(parseInt(n, 10)) === 'number'){
//...
}
Men var försiktig för
typeof Infinity === 'number';
typeof NaN === 'number';
