რიცხვები
ჯავასკრიპტში რიცხვები "ორმაგი-სიზუსტის 64-ბიტიანი ფორმატით" არის წარმოდგენილი, ტექნიკურად ამ ენაში არ არსებობს არანაირი integer (მთელი რიცხვი) ტიპი, ამიტომ სიფრთხილე უნდა გამოიჩინოთ მათემატიკური ოპერაციების დროს:
1
console.log(3/2); // 1.5, not 1
2
console.log(Math.floor(3/2)); //1
Copied!
გამოდის რომ, მთელი რიცხვი ჯავასკრიპტში - ათწილადია.
ასევე, ყურადღება მიაქციეთ შემდეგ მაგალIთსაც:
1
0.1 + 0.2 == 0.30000000000000004;
Copied!
პრაქტიკულად მთელი რიცხვები განიხილება როგორც 32-bit int ტიპებად და ასევე ძირითადად ასეცაა შენახული, სანამ ისეთი ოპერაციების განხორცილება არაა საჭირო, რომლებიც უშუალოდ რიცხვებზე სრულდება და არა 32-bit integer ტიპის ცვლადებზე.
ჯავასკრიპტის მხარდაჭერა მოიცავს სტანდარტულ არითმეტიკულ ოპერატორებს, მაგალითად: მიმატება, გამოკლება, მოდულუსი და ა.შ. ასევე არსებობს ჩაშენებული Math ობიექტებიც, რომლებიც შედარებით მაღალი დონის ოპერაციებს: ფუნქციებს და კონსტანტებს გვთავაზობს, მაგალითად:
1
Math.sin(3.5);
2
var circumference = 2 * Math.PI * r;
Copied!
თქვენ შეგიძლიათ მათი კონვერტაცია string ან integer ტიპებში parseInt() ფუნქციით, რომელიც ასევე იღებს გარდაქმნის "საფუძველს" მეორე, ნებაყოფლობით არგუმენტს რომლებიც რეკომენდირებულია რომ აუცილებლად მოაყოლოთ:
1
parseInt('123', 10) // 123
2
parseInt('010', 10) // 10
Copied!
ასევე შეიძლება ბინარული/ორობითი რიცხვის მთელ რიცხვში კონვერტაციაც:
1
parseInt('11', 2); //3
Copied!
ამის მსგავსად, შეგვიძლია იგივე ოპერაცია განვახორციელოთ ათწილადებზე, ასევე ჩაშენებული parseFloat() ფუნქციით, მაგრამ ამ შემთხევაში ფუძე ყოველთვის 10 იქნება, ამიტომ ფუძის მითითება საჭირო აღარ არის.
+ ოპეარტორსაც შეუძლია სტრინგების რიცხვებში გარდაქმნა:
1
+ '42' // 42
Copied!
იმ შემთხვევაში თუ კონვერტაციისთვის მითითებული სტრინგი არ არის რიცხვითი, მაშინ მიიღებთ სპეციალური მნიშვნელობა NaN_ს (Not a Number)
1
parseInt('hello', 10); //NaN
Copied!
NaN ტოქსიკურია, იმ შემთხევაში თუ მიუმატებთ, გამოაკლებთ, ან რაიმე სახის მათემატიკურ ოპერაციას ჩაატარებთ სხვა რიცხვთან ერთად, პასუხი მუდმივად NaN იქნება:
1
NaN + 5; //NaN
Copied!
NaN_ის შემოწმება შეიძლება ჩაშენებული isNaN() ფუნქციით:
1
isNaN(NaN); // true
Copied!
ჯავასკრიპტში ასევე შევხვდებით უსასრულობის აღმნიშვნელსაც - Infinity:
1
1 / 0; // Infinity
2
-1 / 0; // -Infinity
Copied!
ParseInt() და parseFloat() ფუნქციები ამოწმებენ სტრინგს სანამ არ მაიღწევენ ისეთ სიმბოლომდე რომელიც არ არის რიცხვითი მნიშვნელობის და ამ რიცხვამდე დააბრუნებენ ყველა რიცხვით მნიშვნელობას ათწილად ფორმატში მაგრამ + ოპერატორი ასეთ შემთხვევაში მხოლოდ NaN\ს განახებთ._
Last modified 1yr ago
Copy link