ფუნქცია isFinite

ფუნქცია isFinite გამოიყენება პარამეტრის შესამოწმებლად იმაზე, არის თუ არა ის სასრული რიცხვი (ანუ არა სტრიქონი, მასივი და ა.შ. და არა პლუს ან მინუს უსასრულობა).

როგორ მუშაობს ეს ფუნქცია: ის დააბრუნებს false-ს, თუ რიცხვი არის პლუს ან მინუს უსასრულობა (ანუ Infinity) ან არა-რიცხვი (ანუ NaN), ყველა სხვა შემთხვევაში დააბრუნებს true-ს. ანუ სტრიქონები, მასივები და ა.შ. გარდაიქმნება NaN-ად და შესაბამისად დააბრუნებენ false-ს.

თუმცა არსებობს გამონაკლისები: ცარიელი სტრიქონი '' აბრუნებს true-ს, სტრიქონი სფეისებით ' ' ასევე აბრუნებს true-ს, null აბრუნებს true-ს, მნიშვნელობებისთვის true და false ასევე ბრუნდება true.

ეს ხდება იმიტომ, რომ ეს მნიშვნელობები გარდაიქმნება რიცხვებად და არა NaN-ად. თუ თქვენ გჭირდებათ ნამდვილად ზუსტი შემოწმება რიცხვზე, რომელიც არ თვლის რიცხვად სტრიქონს სფეისებით, ლოგიკურ და სპეციალურ მნიშვნელობებს - გამოიყენეთ შემდეგი ფუნქცია isNumeric:

javascriptfunction isNumeric(num) {
  return !isNaN(parseFloat(num)) && isFinite(num);
};

მოდით გავარკვიოთ, როგორ მუშაობს ის. ფუნქცია isFinite გარდაქმნის პარამეტრს რიცხვად და აბრუნებს true-ს, თუ ეს არ არის Infinity, -Infinity ან NaN. ამრიგად, მარჯვენა ნაწილი გამორიცხავს აშკარად არარიცხვით მნიშვნელობებს, მაგრამ დატოვებს ისეთ მნიშვნელობებს, როგორიცაა true, false, null, ცარიელი სტრიქონი '' და სტრიქონი სფეისებით, რადგან ისინი კორექტულად გარდაიქმნებიან რიცხვებად.

ამ მნიშვნელობების გამოსარიცხად, საჭიროა ფუნქცია parseFloat, რომელიც true-სთვის, false-ისთვის, null-ისთვის, ''-ისთვის, ' '-ისთვის დააბრუნებს NaN-ს. ასე მუშაობს ფუნქცია parseFloat: ის გარდაქმნის პარამეტრს სტრიქონად, ანუ true, false, null ხდება 'true', 'false', 'null', შემდეგ კი კითხულობს მისგან რიცხვს, ამ შემთხვევაში ცარიელი სტრიქონი და სტრიქონი სფეისებით აძლევს NaN-ს. შემდეგ parseFloat-ის შედეგი დამუშავებულია !isNaN-ის გამოყენებით, რომ მიიღოთ true ან false NaN-ის ნაცვლად. შედეგად გამოირიცხება ყველაფერი, გარდა რიცხვ-სტრიქონებისა და ჩვეულებრივი რიცხვებისა.

სინტაქსი

javascriptisFinite(მნიშვნელობა);

მაგალითი

ახლა isFinite გამოიტანს true-ს, რადგან პარამეტრი არის რიცხვი:

javascriptlet num = 3;
console.log(isFinite(num));

კოდის შესრულების შედეგი:

javascripttrue

მაგალითი

ახლა isFinite გამოიტანს false-ს, რადგან პარამეტრი არ არის რიცხვი:

javascriptlet num = 'abcde';
console.log(isFinite(num));

კოდის შესრულების შედეგი:

javascriptfalse

მაგალითი

ახლა isFinite გამოიტანს false-ს, რადგან პარამეტრი არის უსასრულობა:

javascriptlet num = Infinity;
console.log(isFinite(num));

კოდის შესრულების შედეგი:

javascriptfalse

მაგალითი

ახლა isFinite გამოიტანს false-ს, რადგან 1/0 - ეს არსებითად Infinity-ა (უსასრულობა):

javascriptlet num = 1 / 0;
console.log(isFinite(num));

კოდის შესრულების შედეგი:

javascriptfalse

მაგალითი

ახლა isFinite გამოიტანს true-ს, რადგან ცარიელი სტრიქონი, რომელიც არ არის რიცხვი, - ეს გამონაკლისია:

javascriptlet num = '';
console.log(isFinite(num));

კოდის შესრულების შედეგი:

javascripttrue

იხილეთ აგრეთვე

  • ფუნქცია isNaN,
    რომელიც ახორციელებს შემოწმებას NaN-ზე
  • ოპერატორი typeof,
    რომელიც განსაზღვრავს მონაცემთა ტიპს