Khachatryan-dev

Թվային արժեքը JavaScript-ում

JavaScript-ում Number Տիպը

Aram
Khachatryan

JavaScript-ում Number Տիպը


JavaScript-ում թվերը ներկայացվում են միատեսակ number տիպով, որը ընդգրկում է ամբողջ, կոտորակային, դրական, բացասական և հատուկ թվային արժեքներ։ Ի տարբերություն շատ ծրագրավորման լեզուների՝ JavaScript-ում չկա տարանջատում int, float կամ double-ի միջև։


Number տիպի հիմքը — IEEE 754


JavaScript-ի բոլոր թվերը պահվում են որպես 64-bit floating point արժեքներ՝ համաձայն IEEE 754 ստանդարտի։ Սա նշանակում է, որ նույնիսկ ամբողջ թվերը տեխնիկապես float-եր են։


    let int = 42;
    let float = 3.14;
    let negative = -100;

typeof և Number տիպի ճանաչում


    typeof 42;           // 'number'
    typeof 3.14;         // 'number'
    typeof NaN;          // 'number'
    typeof Infinity;     // 'number'

Նույնիսկ NaN և Infinity համարվում են number։


Հատուկ Թվային Արժեքներ


Արժեք Նկարագրություն
NaN Սխալ հաշվարկի արդյունք
Infinity Անսահման մեծ թիվ
-Infinity Անսահման փոքր թիվ
Number.MAX_VALUE Ամենամեծ թիվ, որ կարող է ներկայացվել
Number.MIN_VALUE Ամենափոքր (բայց ոչ բացասական) թիվ
Number.MAX_SAFE_INTEGER 2^53 - 1
Number.MIN_SAFE_INTEGER -(2^53 - 1)
Number.EPSILON Մինիմալ տարբերությունը 1-ի և հաջորդ թվի միջև

NaN-ի տարբերվող Վարքագիծը


    NaN === NaN        // false (!)
    isNaN(NaN)         // true
    Number.isNaN(NaN)  // true

Boolean վերածում


    Boolean(0);        // false
    Boolean(NaN);      // false
    Boolean(42);       // true
    Boolean(-1);       // true

Թվային փոխակերպում


    Number("42");      // 42
    Number("3.14");    // 3.14
    Number("abc");     // NaN
    parseInt("42px");  // 42
    parseFloat("3.14m"); // 3.14

Ավտոմատ Տիպի Փոխակերպում (Coercion)


    '5' + 1     // "51"
    '5' - 1     // 4
    true + 1    // 2
    null + 1    // 1
    undefined + 1 // NaN

Number մեթոդներ


    let n = 123.456;

    n.toFixed(2);        // "123.46"
    n.toPrecision(4);    // "123.5"
    n.toExponential(1);  // "1.2e+2"

Թվաբանական Օպերացիաներ Math Օբյեկտով


    Math.PI;               // 3.14159...
    Math.round(4.7);       // 5
    Math.floor(4.9);       // 4
    Math.ceil(4.1);        // 5
    Math.pow(2, 3);        // 8
    Math.sqrt(9);          // 3
    Math.random();         // պատահական թիվ 0-ից 1 միջակայքում
    Math.max(1, 5, 10);    // 10
    Math.min(1, 5, 10);    // 1

BigInt — Սուպեր Մեծ Թվերի Համար


Եթե պետք է աշխատես շատ մեծ թվերի հետ, որոնք գերազանցում են Number.MAX_SAFE_INTEGER-ը, օգտագործիր BigInt։


Number -ը պարզ տիպ է բայց․․․


Թվային արժեքները JavaScript-ում համարվում են primitive types, սակայն երբ մենք փորձում ենք դրանց վրա կանչել մեթոդներ (toFixed, toString և այլն), JavaScript-ը ներքուստ ժամանակավոր կերպով դրանք վերածում է Number օբյեկտի։


    let n = 42;
    n.toFixed(2); // "42.00"

Վերևի օրինակում n-ը իրականում primitive է, բայց JavaScript-ը ներքին մակարդակում կատարում է հետևյալը՝


    new Number(42).toFixed(2);

Սա կոչվում է autoboxing։ Այս գործընթացը թույլ է տալիս թվերին պահել իրենց lightweight բնույթը, բայց միևնույն ժամանակ ունենալ օբյեկտային ֆունկցիոնալություն։


Դու նաև կարող ես ուղղակիորեն ստեղծել Number օբյեկտ, բայց դա հաճախ խորհուրդ չի տրվում՝


    let n1 = 42;
    let n2 = new Number(42);
    
    console.log(typeof n1); // "number"
    console.log(typeof n2); // "object"
    console.log(n1 === n2); // false

Եզրակացություն՝ աշխատիր primitive թվերով, իսկ Number օբյեկտն օգտագործիր միայն հատուկ դեպքերում։

5.00 / 1
Buy me a coffee
  • 0
  • 16

Բացահայտիր Նոր գիտելիքներ

Մեկնաբանություններ
No data
Մեկնաբանություն չկա։ Կարող ես լինել առաջինը։
Գրել մեկնաբանություն
ՄԵկնաբանություն ավելացնելու համար պետք է մուտք գործելՄուտք