Müəyyən edilmiş javascript vaxt intervalında hərəkətləri təkrarlayın. Javascript-də taymerlər (setInterval, setTimeout). Həqiqi tətik tezliyi

Bu yazıda rəqəmlərə, riyazi operatorlara, ədədi sətirə və əksinə çevirmə yollarına, eləcə də bir çox digər vacib məqamlara ətraflı baxacağıq.

Sonlu funksiyadır

isFinite funksiyası arqumentin sonlu ədəd olub-olmadığını yoxlamağa imkan verir.

Cavab olaraq, arqument Sonsuzluq, -Sonsuzluq, NaN olarsa və ya bu xüsusi ədədi dəyərlərdən birinə ötürüləcəksə, bu funksiya yalanı qaytarır. Əks halda, bu funksiya doğru qaytaracaq.

IsFinite(73); // true isFinite(-1/0); // false isFinite(Sonsuzluq); // false isFinite(NaN); // false isFinite("Mətn"); // yalan

Qlobal isFinite funksiyasına əlavə olaraq JavaScript-də Number.isFinite metodu da var. isFinite-dən fərqli olaraq, arqumenti nömrəyə çevirməyə məcbur etmir.

IsFinite("73"); // true Number.isFinite("73"); // yalan

isNaN funksiyası

isNaN funksiyası arqumentin ədəd olduğunu və ya birinə çevrilə biləcəyini müəyyən etmək üçün nəzərdə tutulmuşdur. Əgər belədirsə, isNaN funksiyası yalanı qaytarır. Əks halda doğru qaytarılır.

IsNaN(NaN); //true isNaN("25px"); //doğrudur, çünki 20px NaN(25.5) rəqəmi deyil; //false isNaN("25.5"); //false isNaN(" "); //yalan, çünki boşluq və ya bir neçə boşluq 0 isNaN(null)-a çevrilir; //yalan, çünki null 0 isNaN-ə çevrilir(doğru); //yalan, çünki doğru 1 isNaN-ə çevrilir(yanlış); //yalan, çünki false 0-a çevrilir

Əgər bu hərəkəti bir növ tökmə olmadan yerinə yetirmək lazımdırsa, Number.isNaN metodundan istifadə edin. Bu üsul ECMAScript 6-dan başlayaraq dilə daxil edilmişdir.

Bir sətri açıq şəkildə rəqəmə necə çevirmək olar?

Aşağıdakı üsullardan istifadə edərək sətri açıq şəkildə rəqəmə çevirə bilərsiniz:

1. İstifadə edin unar operator +, dəyərdən əvvəl yerləşdirilməlidir.

+"7,35"; // 7.35 +"mətn"; // NaN

Bu üsul xəttin əvvəlindəki və sonundakı boşluqları, həmçinin \n (sətir axını) nəzərə almır.

+" 7,35 "; //7.35 +"7.35 \n "; //7.35

Bu üsuldan istifadə edərək, boş sətir və ya boşluqlardan və \n-dən ibarət sətirin 0 rəqəminə çevrilməsinə diqqət yetirməlisiniz. Bundan əlavə, o, null məlumat tipini və Boolean dəyərlərini ədədə çevirir. .

Sıfır; //0 +doğru; //1 +false; //0 +" "; //0

2. ParseInt funksiyası. Bu funksiya çevirmək üçün nəzərdə tutulmuşdur tam ədədə arqument. İstifadədən fərqli olaraq unar operator +, bu üsul sətri olan nömrəyə çevirməyə imkan verir bütün simvollar rəqəmsal deyil. Birinci simvoldan başlayaraq sətri çevirməyə başlayır. Və qeyri-rəqəm simvolu ilə qarşılaşan kimi bu funksiya öz işini dayandırır və nəticədə yaranan rəqəmi qaytarır.

ParseInt("18px"); //18 parseInt("33,3%"); //33

Bu funksiya müxtəlif say sistemləri (ikilik, səkkizlik, onluq, onaltılıq) ilə işləyə bilər. Say sisteminin əsası 2 arqumentdən istifadə etməklə müəyyən edilir.

ParseInt("18px", 10); //18 parseInt("33,3%", 10); //33 parseInt("101",2); //5 parseInt("B5",16); //181

parseInt funksiyasına əlavə olaraq JavaScript-də Number.parseInt metodu var. Bu üsul parseInt funksiyasından fərqlənmir və JavaScript-ə ECMASCRIPT 2015 (6) spesifikasiyası ilə daxil edilib.

3. parseFloat funksiyası. parseFloat funksiyası parseInt funksiyasına bənzəyir, yalnız o, arqumenti kəsr ədədinə çevirməyə imkan verir.

ParseFloat("33,3%"); //33.3

Bundan əlavə, parseFloat funksiyası, parseInt-dən fərqli olaraq, 2 arqumentə malik deyil və buna görə də o, həmişə sətri onluq qeyd sistemində ədəd kimi qəbul etməyə çalışır.

ParseFloat("3.14"); parseFloat("314e-2"); parseFloat("0,0314E+2");

parseFloat funksiyasına əlavə olaraq JavaScript-də Number.parseFloat metodu var. Bu üsul parseFloat funksiyasından fərqlənmir və ECMASCRIPT 2015 (6) spesifikasiyası ilə JavaScript-ə daxil edilib.

Ədədin sətirə çevrilməsi

Siz toString metodundan istifadə edərək nömrəni sətirə çevirə bilərsiniz.

(12.8).toString(); //"12.8"

toString metodu həmçinin rəqəmi sətirə açıq şəkildə çevirməyiniz lazım olduğunu nəzərə alaraq say sisteminin əsasını təyin etməyə imkan verir:

(255).toString(16); //"ff"

Dəyişənin rəqəm olub olmadığını necə yoxlamaq olar

Aşağıdakı üsullardan birini istifadə edərək dəyişənin dəyərinin ədəd olub olmadığını müəyyən edə bilərsiniz:

1. isNaN və isFinite funksiyalarından istifadə:

// myVar dəyişəndir, əgər (!isNaN(parseFloat(myVar)) && isFinite(parseFloat(myVar))) ( //myVar rəqəmdir və ya ona ötürülə bilər);

Funksiya olaraq:

// funksiya funksiyasıNumerik(dəyər) (qaytarmaq !isNaN(parseFloat(dəyər)) && isFinite(parseFloat(dəyər)); ) // var myVar = "12px" istifadə edin; console.log(isNumeric(myVar)); //doğru

Bu üsul, göstərilən dəyərin ədəd olduğunu və ya birinə çevrilə biləcəyini müəyyən etməyə imkan verir. Bu seçim boş sətir, boşluqlar sətirini, null, Sonsuzluq, -Sonsuzluq, doğru və yalanı ədəd kimi saymır.

2. typeof operatorundan və isFinite, isNaN funksiyalarından istifadə etməklə:

// dəyərin ədəd olub-olmadığını yoxlayan funksiya isNumber(value) (qiymətin növünü qaytarın === "nömrə)" && isFinite(value) && !isNaN(value); }; // использование функции isNumber isNumber(18); //true // использование функций для проверки текстовых значений isNumber(parseFloat("")); //false isNumber(parseFloat("Infinity")); //false isNumber(parseFloat("12px")); //true !}

Bu funksiya göstərilən dəyərin Number tipli olub-olmadığını və onun Infinity, -Infinity və NaN xüsusi dəyərlərindən biri olub-olmadığını müəyyən edir. Əgər belədirsə, bu funksiya doğrunu qaytarır.

3. ECMAScript 6 Number.isInteger(value) metodundan istifadə. Bu üsul göstərilən dəyərin tam ədəd olub olmadığını müəyyən etməyə imkan verir.

Number.isInteger("20"); //yalan, çünki bu üsul sətri Number.isInteger(20) rəqəminə çevirmir; //doğrudur, çünki bu dəyər rəqəmdir

Cüt və tək ədədlər

Aşağıdakı funksiyalardan istifadə edərək nömrənin cüt və ya tək olduğunu yoxlaya bilərsiniz:

// Cüt paritet funksiyası üçün ədədi yoxlamaq funksiyası isEven(n) ( qaytarmaq n % 2 == 0; ) // Tək paritet funksiyası üçün ədədi yoxlamaq funksiyası isOdd(n) ( return Math.abs(n % 2) == 1;

Ancaq belə bir yoxlama aparmazdan əvvəl göstərilən dəyərin bir nömrə olduğundan əmin olmaq məsləhətdir:

Dəyər = 20; if (Number.isInteger(value)) ( if (isEven(value)) ( console.log("Number" + value.toString() + " - double"); ) )

Javascript-də sadə ədədlər

Javascript istifadə edərək 2-dən 100-ə qədər sadə ədədləri göstərəcəyimiz bir nümunəyə baxaq.

// Ədədin əsas olub-olmadığını yoxlayan funksiyaPrime(dəyər) funksiyasıdır (əgər (isNaN(dəyər) || !isFinite(dəyər) || dəyər%1 || dəyər).< 2) return false; var max=Math.floor(Math.sqrt(value)); for (var i = 2; i< = max; i++) { if (value%i==0) { return false; } } return true; } // создать массив, который будет содержать простые числа от 2 до 100 var primaryNumber = ; for (var i = 2; i <= 100; i++) { if(isPrime(i)) primaryNumber.push(i); } // вывести в консоль простые числа от 2 до 100 console.log(primaryNumber);

Javascript-də nömrənin yuvarlaqlaşdırılması

JavaScript-də kəsri tam ədədə yuvarlaqlaşdırmağın müxtəlif yolları var.

1. Bunun üçün xüsusi olaraq hazırlanmış Math.floor, Math.ceil və Math.round metodlarından istifadə. Math.floor metodu kəsri ən yaxın tam ədədə yuvarlaqlaşdırır, yəni. sadəcə olaraq fraksiya hissəsini ləğv edir. Math.ceil kəsri ən yaxın tam ədədə yuvarlaqlaşdırır. Math.round kəsr hissəsinin qiymətindən asılı olaraq ədədi yuxarı və ya aşağı yuvarlaqlaşdırır. Kəsr hissəsi 0,5-dən böyük və ya bərabərdirsə, yuxarı, əks halda bükülmə aşağıdır.

Console.log(Math.floor(7.9)); //7 console.log(Math.ceil(7.2)); //8 console.log(Math.round(7.5)); //8

2. toFixed(dəqiq) metodundan istifadə. Bu üsul ədədin kəsr hissəsini müəyyən edilmiş dəqiqliyə yuvarlaqlaşdırır. Yuvarlaqlaşdırma nəticəsi sətir kimi qaytarılır.

Console.log(7.987.toFixed(2)); //"7.99"

Ədədin göstərilən dəqiqliyini yaratmaq üçün kifayət qədər onluq yerlər yoxdursa, o zaman sıfırlarla doldurulur.

Console.log(7.987.toFixed(5)); //"7.98700"

3. toPrecision(dəqiqlik) metodundan istifadə. Bu üsul müəyyən bir dəqiqliklə nömrəni təmsil edir. Eyni zamanda, o, yalnız kəsri deyil, həm də ədədin bütün hissəsini yuvarlaqlaşdıra bilər. Nəticədən asılı olaraq, bu üsul nəticədə alınan ədədi sabit nöqtə ilə və ya eksponensial formada təqdim edə bilər.

Console.log((1001).toPrecision(2)); //"1.0e+3" console.log((1001).toPrecision(5)); //"1001.0" console.log((12.4).toPrecision(1)); //"1e+1" console.log((12.4).toPrecision(2)); //"12" console.log((12.4).toPrecision(3)); //"12.4" console.log((12.4).toPrecision(5)); //"12.400"

4. NOT və ya OR məntiqi operatorlarından istifadə.

//ikiqat məntiqi inkar vasitəsilə console.log(~~7.9); //7 // məntiqi OR istifadə edərək sıfır ilə: console.log(7.9^0); //7

Ədədin tam və kəsr hissəsi

Siz Math.floor() və parseInt() metodlarından istifadə edərək ədədin tam hissəsini əldə edə bilərsiniz:

Console.log(Math.floor(7.21)); // 7 console.log(parseInt(7.21)); // 7

Ədədin kəsr hissəsini faiz (%) operatorundan istifadə etməklə əldə edə bilərsiniz. Bu operator birinci ədədin ikinciyə bölünməsindən əldə ediləcək qalığı qaytarır. Bu halda 2-ci rəqəm kimi 1-dən istifadə etməlisiniz.

Console.log(7,21%1); // 0,20999999999999996 // 2 onluq yerlərinə dəqiq console.log((7,21%1).toFixed(2)); // "0.21"

Bundan əlavə, kəsr hissəsi hesablamalardan istifadə edərək də əldə edilə bilər:

Var sayı = 7.21; var fractionNumber = sayı - Math.floor(Math.abs(nömrə)); console.log(fraksiyaNumber); // 0.20999999999999996

Ədəd tam ədədə bölünürmü?

Faiz operatorundan istifadə edərək ədədin tam ədədə bölünüb-bölünmədiyini müəyyən edə bilərsiniz:

Var sayı = 9; // 3-ə bölünən ədədin qalığı 0 olarsa, bəli, əks halda yox if (sayı%3==0) ( console.log ("Sayı " + sayı + " 3-ə bölünür"); ) else ( console log("Nömrə " + nömrə + " 3-ə bölünmür");

Nömrələrin formatlaşdırılması

JavaScript-də toLocaleString() metodu regional standartlara (əməliyyat sisteminin dil parametrləri) uyğun olaraq nömrənin çıxışını formatlamağa imkan verir.

Məsələn, bir nömrəni standart olaraq sistemdə quraşdırılmış regional standartlara uyğun formatlaşdıraq:

Var sayı = 345.46; console.log(number.toLocaleString()); //"345.46"

Məsələn, nömrəni Rusiyanın regional standartlarına uyğun formatlaşdıraq (ru):

Console.log((108.1).toLocaleString("ru-RU")); //"108.1"

Bu üsul həm də nömrəni valyuta kimi formatlaşdırmaq üçün istifadə edilə bilər:

Console.log((2540.125).toLocaleString("ru-RU",(üslub:"valyuta", valyuta:"RUB"))); //"2,540.13 ₽" console.log((89.3).toLocaleString("ru-RU",(üslub:"valyuta", valyuta:"USD"))); //"$89.30" console.log((2301.99).toLocaleString("ru-RU",(üslub:"valyuta", valyuta:"EUR"))); //"€2,301,99"

Ədədin faizlə ifadə edilməsi:

Console.log((0.45).toLocaleString("ru-RU",(üslub:"faiz"))); //"45%"

Rəqəmləri rəqəmlərə bölün (Grouping xüsusiyyətindən istifadə edin):

Console.log((125452.32).toLocaleString("ru-RU",(Qruplaşdırmadan istifadə edin:true))); //"125,452,32"

Onluq nöqtəsindən sonra müəyyən sayda rəqəm (2) olan rəqəmi çap edin:

Console.log((1240.4564).toLocaleString("ru-RU",(minimumFractionDigits:2, maksimumFractionDigits:2))); //"1,240,46"

Rəqəmlərin müqayisəsi

JavaScript-də ədədləri müqayisə etmək üçün aşağıdakı operatorlardan istifadə olunur: == (bərabər), != (bərabər deyil), > (böyük),< (меньше), >= (böyük və ya bərabər),<= (меньше или равно).

Məsələn, iki rəqəmi müqayisə edək:

Console.log(2>3); //false console.log(5>=3); //doğru

Ədədləri kəsr hissəsi ilə müqayisə edərkən, bu hesablamalar zamanı yarana biləcək səhvləri nəzərə almaq lazımdır.

Məsələn, JavaScript-də ədədlərin cəmi (0,2 + 0,4) 0,6-ya bərabər deyil:

Console.log((0.2+0.4)==0.6); //yalan

Kompüter və ya digər elektron cihaz bütün hesablamaları 2-ci say sistemində yerinə yetirdiyi üçün səhvlər baş verir. Bunlar. Hər hansı bir hərəkəti yerinə yetirməzdən əvvəl kompüter əvvəlcə ifadədə təqdim olunan rəqəmləri 2-ci say sisteminə çevirməlidir. Lakin hər kəsr onluq ədədi 2-ci say sistemində tam olaraq təmsil oluna bilməz.

Məsələn, 0,25 10 rəqəmi tam olaraq ikiliyə çevrilir.

0,125 × 2 = 0,25 | 0 0,25 × 2 = 0,5 | 0 0,5 × 2 = 1 | 1 0,125 10 = 0,001 2

Məsələn, 0.2 10 rəqəmi yalnız müəyyən bir dəqiqliklə 2 sisteminə çevrilə bilər:

0,2 × 2 = 0,4 | 0 0,4 × 2 = 0,8 | 0 0,8 × 2 = 1,6 | 1 0,6 × 2 = 1,2 | 1 0,2 × 2 = 0,4 | 0 0,4 × 2 = 0,8 | 0 0,8 × 2 = 1,6 | 1 0,6 × 2 = 1,2 | 1 0,2 × 2 = 0,4 | 0 0,4 × 2 = 0,8 | 0 0,8 × 2 = 1,6 | 1 0,6 × 2 = 1,2 | 1 ... 0,2 10 = 0,001100110011... 2

Nəticədə, bu səhvlər iki ədədin cəminin hesablanmasına və müqayisə nəticələrinə təsir edəcəkdir. Bunlar. Məlum oldu ki, JavaScript əslində bu girişi aşağıdakı kimi görəcək:

0.6000000000000001==0.6

Kəsr hissələri olan ədədləri hesablayarkən və ya göstərərkən, siz həmişə bunu etmək istədiyiniz dəqiqliyi göstərməlisiniz.

Məsələn, toFixed() və toPrecision() metodlarından istifadə edərək 2 onluq yerə qədər rəqəmləri müqayisə edin:

//metod toFixed() console.log((0.2+0.4).toFixed(2)==(0.6).toFixed(2)); //doğru //metod toPrecision() console.log((0.2+0.4).toPrecision(2)==(0.6).toPrecision(2)); //doğru

Əsas riyaziyyat əməliyyatları

JavaScript-də aşağıdakı riyazi operatorlar mövcuddur: + (əlavə), - (çıxma), * (vurma), / (bölmə), % (modul), ++ (qiyməti 1 artır), -- (qiyməti azaltmaq 1).

6+3 //9 6-3 //3 6*3 //18 6/3 //2 6%3 //0, yəni. 6:3=2 => 6-3*2 => istirahət(0) 5%2 //1, yəni. 5:2=2(.5) => 5-2*2 => istirahət(1) 7.3%2 //1.3, yəni. 7.3:2=3(.65) => 7.3-2*3 => istirahət(1.3) //% əməliyyatının nəticəsinin işarəsi birinci qiymətin işarəsinə bərabərdir -9%2.5 //-1.5 , yəni. 9:2.5=3(.6) => 9-2.5*3 => istirahət(1.5) -9%-2.5 //-1.5, yəni. 9:2.5=3(.6) => 9-2.5*3 => istirahət(1.5) -2%5 //-2, yəni. 2:5=0(.4) => 2-5*0 => istirahət(2) x = 3; console.log(x++); //3-ü çıxarır, sonra 4-ü təyin edir console.log(x); //4 x = 3; console.log(++x); //dəstlər 4 və çıxışlar x = 5; console.log(x--); //5-i çıxarır, sonra 4-ü təyin edir console.log(x); //4 x = 5; console.log(--x); //4 təyin edir və çıxışlar Bundan əlavə, JavaScript-də kombinasiya operatorları var: x+=y (x=x+y), x-=y (x=x-y), x*=y (x=x*y), x/= y (x=x/y), x%=y (x=x%y). x = 3; y = 6; x+=y; console.log(x); //9 x = 3; y = 6; x-=y; console.log(x); //-3 x = 3; y = 6; x*=y; console.log(x); //18 x = 3; y = 6; x/=y; console.log(x); //0,5 x = 3; y = 6; x%=y; console.log(x); //3