Windows.  Viruslar.  Noutbuklar.  Internet.  Idora.  Utilitalar.  Haydovchilar

JavaScript-da satrlarni raqamlarga aylantirish uchun ikkita o'rnatilgan funksiya mavjud: parseFloat() va parseInt() .

parseFloat() argument sifatida raqamli turga aylantiriladigan satrni oladi va float raqamini qaytaradi. Raqam satr boshida ko'rsatilishi kerak. Agar raqamdan keyin qatorda boshqa belgilar bo'lsa, ular kesiladi. Raqamning kasr qismi nuqta bilan ajratilgan holda yozilishi kerak (vergul ajratuvchi sifatida qabul qilinmaydi). Agar parseFloat() satrni o'zgartira olmasa, u NaN ni qaytaradi.

Funktsiya, shuningdek, dasturlashda odatda E harfi bilan yoziladigan "n sonining 10 ga ko'paytirilgan x quvvatiga" ishlov berishi mumkin, masalan: 0,5E6 yoki 0,5E+6. Daraja ham salbiy bo'lishi mumkin: 0,5E-6, bu 0,5*10^-6 yoki 0,5/1000000 ga teng.

ParseFloat(""3,78kg"") // 3,78 parseFloat(""kg33"") // NaN parseFloat(""0004.111"") // 4,111 parseFloat(""0x66"") // 0 parseFloat("". 5"") // 0,5 parseFloat(""-.5"") // -0,5 parseFloat(""0,5e6"") // 500000 parseFloat(""0,03E+2"") // 3 parseFloat(" "3E-4"") // 0,0003 parseFloat(""-3E-4"") // -0,0003

parseInt(string[, radix]) funksiyasi birinchi argument sifatida satrni oladi, uni tahlil qiladi va butun sonni (turi butun son) qaytaradi. Funktsiya raqam yozilgan sanoq tizimini tahlil qilishga harakat qiladi asl qator(masalan, o'nlik, sakkizlik yoki o'n oltilik - faqat bular emas). Bundan tashqari, ikkinchi parametr radikali sifatida sanash tizimini aniq belgilashingiz mumkin. Radix parametri 2 dan 36 gacha bo'lgan har qanday raqamni olishi mumkin (10 dan yuqori tizimlarda A dan Z gacha ingliz alifbosining harflari ishlatiladi).

Funktsiya parseFloat() kabi 1.5e6 kabi raqamlarni qayta ishlamaydi.

Adashib qolmaslik uchun quyidagi misollarni o‘qing. suv osti jinslari, parseInt() funksiyasi ishida yashiringan.

ParseInt(""25"") // 25 parseInt(""-25"") // -25 parseInt(""45.12"") // 45 parseInt(""045"",10) // 45 parseInt( ""70"",8) // 56 (70 sakkiztalik o'nli sonda 56) parseInt(""070"") // 56 (MUHIM!!! nol birinchi navbatda funktsiyani satrni sakkizlik son sifatida tahlil qilishga olib keladi. ) parseInt(" "88"",8) // NaN (sakkizlik tizimda 8 raqami yo'q) parseInt(""a1"") // NaN (MUHIM!!! Standart funktsiya raqamni shunday ko'rsatmaydi. agar u bosh satrlarga qo'shilmagan bo'lsa, o'n oltilik 0x) parseInt(""a1"",16) // 161 (sanoq tizimi bu erda aniq ko'rsatilgan) parseInt(""0xa1"") // 161 (to'g'ri o'n oltilik raqam formati , ikkinchi parametrni belgilashingiz shart emas) parseInt( ""099"") // 0 (MUHIM!!! Raqam sakkizlik sifatida ko'rib chiqiladi, lekin noto'g'ri belgilar mavjud) parseInt(""0.5e6"") / / 0 (MUHIM!!! parseFloat kabi ishlamaydi) parseInt("" ZZ"",36) // 1295 parseInt(""-FF"") // NaN parseInt(""-FF"",16) / / -255

Agar siz matn maydonidan foydalanuvchi ma'lumotlarini tahlil qilsangiz, kodingizni kutilmagan natijalardan himoya qilish uchun har doim parseInt() dan ikkinchi radix parametri bilan birga foydalaning.

Ifoda qanday turdagi o'zgaruvchidan foydalanilganligining farqi yo'q. Agar ifoda matematik bo'lsa, uning barcha o'zgaruvchilari avtomatik ravishda raqamli sifatida talqin qilinadi. Agar satrlar qayta ishlansa, u holda ifodaning barcha "ishtirokchilari" satrlar sifatida ko'rib chiqiladi. Biroq, JavaScript-da satrni raqamga aylantirish muammosi ancha kengroq kontekstda mavjud.

Satrlarni raqamlarga aylantirish uchun JavaScript usullari

Satrlarni raqamlarga aylantirish usullarining arsenali katta emas, lekin bu barcha oddiy holatlarda etarli. Bu erda JavaScript (ayniqsa yangi boshlanuvchilar uchun) amaliy misollar yordamida oddiydan murakkabga yo'ldir.

Sizni qiziqtirishi mumkin:

Misol to'rt xil satrlarni tasvirlaydi. Chiqishning birinchi blokida typeof funktsiyasi har bir o'zgaruvchining turini satr sifatida belgilaydi. Keyin har bir satr juda oddiy raqamga aylantiriladi. Ikkinchi chiqish blokida konversiyadan keyin o'zgaruvchilardagi o'zgarishlar ko'rinadi, ularning turi raqamga aylandi; JavaScript parseFloat konvertatsiyasi misoli ayniqsa yorqin: u "12e+3" edi va "12000" bo'ldi.

Satrni raqamga aylantirishda o'zgarishlar muhim bo'lishi mumkin! Lekin faqat birinchi belgilar muhim: ular raqamli bo'lishi kerak. Raqamli belgilar bo'lmasa, natija NaN bo'ladi.

Raqamga "aylanuvchi" satrning teskari konvertatsiyasi har doim ham bir xil satr bo'lavermaydi. Bu nuqta raqamli ma'lumotlarni kiritishning to'g'riligini tekshirish uchun ishlatilishi mumkin.

Salom aziz o'quvchilar. Bugun men qanday qilib aylantirilishini yozaman javascript raqamga qator. Bu raqam funktsiyasi yordamida amalga oshiriladi, endi men uning ishlatilishini misol bilan ko'rsataman.
Shuningdek, ushbu maqolaning video versiyasini ko'rishni taklif qilaman:

Ma'lumotlar turlari haqida bir oz

Ma'lumki, javascriptda raqamli va qatorli ma'lumotlar turlari mavjud. Keling, raqamlarni saqlaydigan ikkita o'zgaruvchini yaratishga harakat qilaylik va natijani ekranda ko'rsatamiz.

Var a = 5; var b = 12; hujjat.yozish(a + b);

Natija qanday bo'ladi? 17, bu brauzer bizga ko'rsatgan narsadir. Shunday qilib, bu raqamli ma'lumotlar, shuning uchun brauzer uni muvaffaqiyatli qo'shdi. Keling, yana ikkita o'zgaruvchi yarataylik, ularda biz bir xil qiymatlarni qo'yamiz, lekin tirnoq ichida. Eslatib o'taman, javascriptdagi barcha satrlar tirnoq ichida yozilgan.

Var c = "5"; var d = "12"; document.write("
" + c + d);

Endi brauzer bizning ma'lumotlarimizni satr deb hisoblaydi va agar biz ularni qo'shsak, ikkita qator qo'shiladi va biz 512 ni olamiz, agar raqamlar qo'shilsa, bu to'g'ri natija emas, lekin ikkita qatorni birlashtirsak to'g'ri bo'ladi.

Javascriptda satrni raqamga qanday aylantirish mumkin?

Bu erda hamma narsa oddiy, keling, keyingi ikkita o'zgaruvchini yaratamiz, unda biz c va d o'zgaruvchilari tomonidan ko'rsatilgan qiymatni yozamiz, lekin ularni Number usuli orqali o'tkazamiz:

Var e = Raqam(c); var f = Number(d); hujjat.write(e + f);

Agar siz hozir ushbu qo'shish natijasini ekranda ko'rsatishga harakat qilsangiz, u 17 ni ko'rsatadi. Buning sababi, bizning usulimiz muvaffaqiyatli ishladi va satrni raqamga aylantirdi. Shuni ta'kidlashni istardimki, agar siz buni shunday yozsangiz:

Document.write("
" + e + f);

Keyin ekranda 512 ko'rsatiladi, chunki satrlar va raqamlarni qo'shganda DOIM natija satrga aylantiriladi. Agar siz chiziqli tanaffus qo'shmoqchi bo'lsangiz va hali ham to'g'ri natijani saqlamoqchi bo'lsangiz, hamma narsani ikkita yoki bitta qatorga yozishingiz mumkin:

Document.write("
" + (e + f));

Agar siz raqamlarni qavs ichiga qo'ysangiz, ular satrlarga aylantirilmaydi va o'z xususiyatlarini muvaffaqiyatli saqlab qoladi. Bu mening bugungi qisqa maqolam. Umid qilamanki, JavaScript siz uchun biroz aniqroq bo'ldi.

The parseInt() funktsiya satr argumentini tahlil qiladi va ko'rsatilgan radikalning butun sonini qaytaradi (matematik raqamlar tizimidagi asos).

Ushbu interaktiv misol uchun manba GitHub omborida saqlanadi. Agar siz interaktiv misollar loyihasiga o'z hissangizni qo'shmoqchi bo'lsangiz, iltimos, https://github.com/mdn/interactive-examples klonlang va bizga tortish so'rovini yuboring.

Sintaksis

parseInt (string, radix)

Parametrlar

string Tahlil qilinadigan qiymat. Agar bu argument satr bo'lmasa, u ToString abstrakt operatsiyasi yordamida bittaga aylantiriladi. Ushbu argumentdagi asosiy bo'shliq e'tiborga olinmaydi. radix Majburiy emas 2 dan 36 gacha bo'lgan butun son, bu qatorning radikalini (matematik sanoq sistemalaridagi asos) ifodalaydi. Ehtiyot bo'ling - bu shunday emas standart 10! Radix taqdim etilmaganda nima sodir bo'lishini batafsilroq tushuntiradi.

Qaytish qiymati

Berilgan satrdan ajratilgan butun son.

Agar radiks 11 dan kichik bo'lsa va birinchi bo'sh bo'lmagan belgini raqamga aylantirib bo'lmasa, NaN qaytariladi.

Tavsif

parseInt funktsiyasi o'zining birinchi argumentini satrga aylantiradi, bu qatorni tahlil qiladi, so'ngra butun son yoki NaN ni qaytaradi.

Agar NaN bo'lmasa, qaytarish qiymati belgilangan radixda raqam sifatida qabul qilingan birinchi argument bo'lgan butun son bo'ladi. (Masalan, 10 dan iborat radikal oʻnlik sondan, 8 ta sakkizlikdan, 16 ta oʻn oltilik sondan va hokazo.)

10 dan yuqori radikallar uchun ingliz alifbosidagi harflar 9 dan katta raqamlarni bildiradi. Misol uchun, o'n oltilik sonlar uchun (baza 16) A dan F gacha ishlatiladi.

Agar parseInt ko'rsatilgan radixda raqam bo'lmagan belgiga duch kelsa, u unga va barcha keyingi belgilarga e'tibor bermaydi va shu nuqtaga qadar tahlil qilingan butun son qiymatini qaytaradi. parseInt raqamlarni butun qiymatlarga qisqartiradi. Etakchi va orqadagi bo'shliqlarga ruxsat beriladi.

Chunki ba'zi raqamlar o'z satrlarini ko'rsatishda e belgisidan foydalanadi (masalan. 6.022e23 6.022 × 10 23 uchun), raqamlarni kesish uchun parseInt-dan foydalanish juda katta yoki juda kichik raqamlarda ishlatilganda kutilmagan natijalar beradi. parseInt kerak emas Math.floor() o'rniga ishlatiladi.

parseInt aniq ikkita belgini tushunadi: + ijobiy uchun va - salbiy uchun (ECMAScript 1dan beri). Bu bo'sh joy olib tashlanganidan keyin tahlil qilishning dastlabki bosqichi sifatida amalga oshiriladi. Hech qanday belgilar topilmasa, algoritm quyidagi bosqichga o'tadi; aks holda, u belgini olib tashlaydi va satrning qolgan qismida raqamni ajratishni ishga tushiradi.

Agar radix aniqlanmagan , 0 yoki aniqlanmagan bo'lsa, JavaScript quyidagilarni qabul qiladi:

  1. Agar kirish satri "0x" yoki "0X" (nol, keyin kichik yoki katta X) bilan boshlansa, radix 16 deb qabul qilinadi va satrning qolgan qismi o'n oltilik raqam sifatida tahlil qilinadi.
  2. Agar kirish satri "0" (nol) bilan boshlansa, radix 8 (sakkizlik) yoki 10 (o'nlik) deb qabul qilinadi. Aynan qaysi radis tanlanganligi amalga oshirishga bog'liq. ECMAScript 5 10 (o'nlik) ekanligini aniqlaydi kerak foydalanish mumkin, lekin hali hamma brauzerlar buni qo'llab-quvvatlamaydi. Shu sababli, parseInt dan foydalanganda har doim radisni belgilang.
  3. Agar kirish satri har qanday boshqa qiymatdan boshlansa, radikal 10 (o'nlik) ga teng.

Agar birinchi belgi raqamga aylantirilmasa, agar radikal 10 dan katta bo'lmasa, parseInt NaN ni qaytaradi.

Arifmetik maqsadlar uchun NaN qiymati har qanday radiksdagi raqam emas. Siz .. qila olasiz; siz ... mumkin parseInt natijasi NaN ekanligini aniqlash uchun isNaN funksiyasini chaqiring. Agar NaN arifmetik amallarga o'tkazilsa, operatsiya natijasi ham NaN bo'ladi.

Raqamni ma'lum bir radiksdagi satr harfiga aylantirish uchun thatNumber .toString(radix) dan foydalaning.

Misollar

parseInt dan foydalanish

Quyidagi Barcha misollar 15 ni qaytaradi:

ParseInt("0xF", 16) parseInt("F", 16) parseInt("17", 8) parseInt(021, 8) parseInt("015", 10) // lekin `parseInt(015, 10)` bo'ladi return 13 parseInt(15.99, 10) parseInt("15,123", 10) parseInt("FXX123", 16) parseInt("1111", 2) parseInt("15 * 3", 10) parseInt("15e2", 10) parseInt("15px", 10) parseInt("12", 13)

Quyidagi misollarning barchasi NaN ni qaytaradi:

ParseInt("Salom", 8) // Hech qanday raqam emas parseInt("546", 2) // Binar radix uchun 0 yoki 1 dan boshqa raqamlar yaroqsiz

Quyidagi misollarning barchasi -15 ni qaytaradi:

ParseInt("-F", 16) parseInt("-0F", 16) parseInt("-0XF", 16) parseInt(-15.1, 10) parseInt("-17", 8) parseInt("-15", 10) parseInt("-1111", 2) parseInt("-15e1", 10) parseInt("-12", 13)

Quyidagi misollarning barchasi 4 ni qaytaradi:

ParseInt(4.7, 10) parseInt(4.7 * 1e22, 10) // Juda katta son 4 ga aylanadi parseInt(0.00000000000434, 10) // Juda kichik raqam 4 ga aylanadi

Quyidagi misol 224 ni qaytaradi:

ParseInt("0e0", 16) parseInt("123_456") // 123

Radikssiz sakkizlik talqinlar

ECMAScript 3 tomonidan to'xtatilgan va ECMAScript 5 tomonidan taqiqlangan bo'lsa-da, ko'p ilovalar bosh 0 dan boshlanadigan raqamli qatorni sakkizlik sifatida izohlaydi. Quyidagi natija sakkizlik yoki o'nlik natijaga ega bo'lishi mumkin. Har doim radikalni belgilang bu ishonchsiz xatti-harakatlardan qochish uchun.

ParseInt("0e0") // 0 parseInt("08") // 0, chunki "8" sakkizlik raqam emas.

ECMAScript 5 sakkizlik talqinni olib tashlaydi

parseInt funksiyasining ECMAScript 5 spetsifikatsiyasi endi ilovalarga 0 belgidan boshlanadigan satrlarni sakkizlik qiymat sifatida ko‘rib chiqishga ruxsat bermaydi. ECMAScript 5 quyidagilarni ta'kidlaydi:

parseInt funksiyasi belgilangan radiksga muvofiq satr argumenti mazmunini talqin qilish orqali belgilangan butun son qiymatini hosil qiladi. Satrdagi bosh bo'sh joy e'tiborga olinmaydi. Agar radix aniqlanmagan bo'lsa yoki 0 bo'lsa, raqam 0x yoki 0X belgilar juftligi bilan boshlangan hollar bundan mustasno, u 10 deb qabul qilinadi, bu holda radikal 16 ga teng deb qabul qilinadi.

Bu ECMAScript 3 dan farq qiladi, bu tavsiya etilmaydi, ammo sakkizlik talqinga ruxsat beriladi.

Ko'pgina ilovalar 2013 yildan boshlab bu xatti-harakatni qabul qilmagan va eski brauzerlar qo'llab-quvvatlanishi kerakligi sababli, har doim radikalni belgilang.

Qattiqroq tahlil qilish funktsiyasi

Ba'zan butun sonlarni tahlil qilishning qattiqroq usuliga ega bo'lish foydalidir.

Oddiy iboralar yordam berishi mumkin:

Funktsiya filterInt(qiymat) (agar (/^[-+]?(\d+|Infinity)$/.test(qiymat)) ( Qaytish Raqam(qiymat) ) else ( Qaytish NaN ) ) console.log(filterInt( "421 ")) // 421 console.log(filterInt("-421")) // -421 console.log(filterInt("+421")) // 421 console.log(filterInt("Infinity")) // Infinity console.log(filterInt("421e+0")) // NaN console.log(filterInt("421hop")) // NaN console.log(filterInt("hop1.61803398875")) // NaN konsoli .log (filterInt("1.61803398875")) // NaN

Texnik xususiyatlari

Spetsifikatsiya Holat Izoh
ECMAScript 1-nashr (ECMA-262) Standart Dastlabki ta'rif.
ECMAScript 5.1 (ECMA-262)
Standart
ECMAScript 2015 (6-nashr, ECMA-262)
Ushbu spetsifikatsiyadagi "parseInt" ta'rifi.
Standart
ECMAScript oxirgi loyihasi (ECMA-262)
Ushbu spetsifikatsiyadagi "parseInt" ta'rifi.
Qoralama

Brauzer mosligi

Ushbu sahifadagi muvofiqlik jadvali tuzilgan ma'lumotlardan yaratilgan. Agar siz maʼlumotlarga oʻz hissangizni qoʻshmoqchi boʻlsangiz, iltimos, https://github.com/mdn/browser-compat-data manziliga tashrif buyuring va bizga tortishish soʻrovini yuboring.

GitHub-da muvofiqlik ma'lumotlarini yangilang

Ish stoliMobilServer
ChromeChetFirefoxInternet ExplorerOperaSafariAndroid veb-ko'rinishiAndroid uchun ChromeAndroid uchun FirefoxAndroid uchun OperaIOS uchun SafariSamsung InternetNode.js
parseIntChrome toʻliq qoʻllab-quvvatlash 1Edge to'liq qo'llab-quvvatlash 12Firefox to'liq qo'llab-quvvatlash 1IE To'liq qo'llab-quvvatlash 3Opera to'liq qo'llab-quvvatlash HaSafari to'liq qo'llab-quvvatlash HaWebView Android to'liq qo'llab-quvvatlash 1Chrome Android to'liq qo'llab-quvvatlash 18Firefox Android to'liq qo'llab-quvvatlash 4Safari iOS to'liq qo'llab-quvvatlash HaSamsung Internet Android To'liq qo'llab-quvvatlash 1.0nodejs To'liq qo'llab-quvvatlash Ha
Boshlovchi nol qatorlar sakkizlik emas, o'nlikdirChrome toʻliq qoʻllab-quvvatlash 23Edge to'liq qo'llab-quvvatlash 12Firefox to'liq qo'llab-quvvatlash 21IE To'liq qo'llab-quvvatlash 9Opera to'liq qo'llab-quvvatlash HaSafari to'liq qo'llab-quvvatlash 6WebView Android to'liq qo'llab-quvvatlash 4.4Chrome Android to'liq qo'llab-quvvatlash 25Firefox Android to'liq qo'llab-quvvatlash 21Opera Android To'liq qo'llab-quvvatlash HaSafari iOS to'liq qo'llab-quvvatlash 6Samsung Internet Android To'liq qo'llab-quvvatlash Hanodejs To'liq qo'llab-quvvatlash Ha

JavaScript - bu dinamik ma'lumotlarni yozishga ega til. Bu shuni anglatadiki, qiymatlar bir xil o'zgaruvchiga yozilishi mumkin har xil turlari, va o'zgaruvchining turi o'zgaradi. Bunday xatti-harakatlar ko'pincha o'zgaruvchilarning turli xatti-harakatlarini unutishga imkon beradi har xil turlari, lekin bu xususiyatni hali ham eslab qolish kerak. Buni quyidagi misol bilan ko'rsatamiz.

console.log(sum(1, 2)); // 3 (bu yerda hammasi joyida) console.log(sum(1, "2")); // 12 (va bu erda unchalik emas)

Misoldan ko'rinib turibdiki, funktsiya so'm agar uning argumentlaridan kamida bittasi raqam bo'lmasa, o'zini noto'g'ri tutadi. Gap shundaki, raqamni satrga "qo'shish" paytida raqam satrga aylanadi va u ikkinchi operand bilan birlashtiriladi (yopishtiriladi).

Bunday asoratlarni oldini olish uchun siz skriptni bajarish paytida o'zgaruvchining turini bilib olishingiz va uning harakatini sozlashingiz yoki o'zgaruvchilar turlarini diqqat bilan kuzatib borishingiz mumkin.

operator turi

Bu unar operator operand sifatida mutlaqo istalgan qiymatni oladi va uning turini satr o'zgaruvchisida qaytaradi.

JavaScript quyidagi ma'lumotlar turlariga ega:

// 1.) ob'ekt console.log (typeof ( ) ); // ob'ekt var p = ( x: 1 , y: 3 ); console.log (p turi); // obyekt // 2.) funksiya funksiyasi sayHello() ( console.log ("Salom!" ); ) console.log (turi sayHello) ; // funktsiya // 3.) string console.log ("JavaScript" turi) ; // string // 4.) raqam konsoli.log (3.1415 turi); // raqam // 5.) boolean console.log (typeof true ); // mantiqiy // 6.) undefined var notExistsOne; console.log (notExistsOne turi); // undefined console.log (notExistsTwo turi); // aniqlanmagan

// 1.) ob'ekt console.log(typeof ()); // ob'ekt var p = (x: 1, y: 3); console.log (p turi); // obyekt // 2.) funksiya funksiyasi sayHello() ( console.log("Salom!"); ) console.log(typeof sayHello); // funktsiya // 3.) string console.log("JavaScript" turi); // string // 4.) raqam konsoli.log(typeof 3.1415); // raqam // 5.) mantiqiy konsol.log(typeof true); // mantiqiy // 6.) undefined var notExistsOne; console.log(notExistsOne turi); // undefined console.log(typeof notExistsTwo); // aniqlanmagan

shu esta tutilsinki aniqlanmagan Bu, shuningdek, bitta qiymatdan iborat ma'lumotlar turi.

Cast

Dasturlashda tipni taqsimlash bir turdagi o'zgaruvchining qiymatini boshqa turdagi qiymatga aylantirishni anglatadi.
Ko'pincha bunday konvertatsiya dasturchining nazoratisiz sodir bo'ladi. Buni funksiya bilan misolda ko'rish mumkin so'm. Turning o'zgarishi asl turdagi o'zgaruvchi ustidagi operatsiya natijasi noaniq bo'lganda sodir bo'ladi. Masalan, songa satr qo‘shish natijasida nima bo‘lishini aniq aytish mumkin emas, lekin ikkita sonni qo‘shish amali yaqqol ko‘rinib turadi va bu holda raqamni qatorga qisqartirish mantiqan to‘g‘ri keladi.

Satrni raqamga aylantirish

Ba'zan dasturchining o'zi o'zgaruvchining turini unga ma'lum operatsiyalarni qo'llash orqali o'zgartirishi mumkin. Masalan, satrdagi amallarni oshirish yoki kamaytirish uni raqamga qisqartiradi.

var c = "raqam emas"; ++c; console.log (c turi); // NaN

Shuni ta'kidlash kerakki, satrni raqamga aylantirishning bu usuliga murojaat qilishning hojati yo'q, chunki uning o'qilmasligi va ravshan emas. JS da bu vazifa uchun o'rnatilgan funksiyalar mavjud parseInt Va parseFloat. Birinchi argument sifatida ular raqamga aylantirilishi kerak bo'lgan qatorni, ixtiyoriy ikkinchi argument sifatida esa birinchi argument sifatida o'tkazilgan qatorda raqam yozilgan sanoq tizimining asosini oladi. Agar ikkinchi argument ko'rsatilmagan bo'lsa, u holda satrda o'nlik sanoq sistemasidagi raqam mavjud deb taxmin qilinadi.

Funktsiya parseInt satrni butun songa va funksiyaga aylantirish uchun ishlatiladi parseFloat kasrga aylantirish uchun.

var a = parseInt("10" ) ; console.log ([ "a = " , a, "; typeof a:" , typeof a] .join ( " " ) ); // a = 10; typeof a: raqam var pi = parseInt("3.1415" ); console.log("pi = " + pi) ; // pi = 3 pi = parseFloat("3.1415" ); console.log("pi = " + pi) ; // pi = 3.1415

var a = parseInt("10"); console.log(["a = ", a, "; typeof a:, typeof a].join(" ")); // a = 10; typeof a: raqam var pi = parseInt("3.1415"); console.log("pi = " + pi); // pi = 3 pi = parseFloat("3.1415"); console.log("pi = " + pi); // pi = 3.1415

E'tibor bering, satr har qanday so'zma-so'z raqamli qiymatni o'z ichiga olishi mumkin, jumladan, o'n oltilik, sakkizlik yoki ilmiy belgilar.

a = parseInt("010" ); console.log("a = " + a) ; // a = 8 a = parseInt("0xAA" ) ; console.log("a = " + a) ; // a = 170 a = parseFloat("1e-10" ) ; console.log("a = " + a) ; // a = 1e-10 (1e-10 = 1 * 10 ^ -10 = 0,0000000001)

a = parseInt("010"); console.log("a = " + a); // a = 8 a = parseInt("0xAA"); console.log("a = " + a); // a = 170 a = parseFloat("1e-10"); console.log("a = " + a); // a = 1e-10 (1e-10 = 1 * 10 ^ -10 = 0,0000000001)

Funktsiyalarning ikkinchi parametri sifatida parseInt Va parseFloat Sanoq tizimining asosini belgilashingiz mumkin.

a = parseInt("10" , 8 ); console.log("a = " + a) ; // a = 8 a = parseInt("010" , 10 ); console.log("a = " + a) ; // a = 10 a = parseInt("ff" , 16 ); console.log("a = " + a) ; // a = 255

a = parseInt("10", 8); console.log("a = " + a); // a = 8 a = parseInt("010", 10); console.log("a = " + a); // a = 10 a = parseInt("ff", 16); console.log("a = " + a); // a = 255

Agar qiymat funktsiyaga tegishli satrda bo'lsa parseInt Va parseFloat birinchi parametr sifatida qabul qilinadi, raqamli harf emas, u holda bu funktsiyalarni bajarish natijasi qiymat bo'ladi NaN.

a = parseInt("raqam emas" ); console.log("a = " + a) ; // a = NaN a = parseFloat("raqam emas" ) ; console.log("a = " + a) ; // a = NaN

a = parseInt("raqam emas"); console.log("a = " + a); // a = NaN a = parseFloat("raqam emas"); console.log("a = " + a); // a = NaN

String konvertatsiyasi

IN JavaScript ma'nosi har qanday turni satrga o'tkazish mumkin. Yuqorida aytib o'tilgan ediki, satr son bilan bog'langanda, son qatorga qisqaradi va shundan keyingina bog'lanish sodir bo'ladi. Bu har qanday turdagi qiymat bilan sodir bo'ladi.

var str = "Ob'ekt: " + ( ); console.log(str); // Ob'ekt: str = "Masiv: " + [ 1 , 2 , 3 ] ; console.log(str); // Massiv: 1,2,3 funktsiya sum(a, b) ( qaytarish a + b; ) str = "Funktsiya: " + sum; console.log(str); /* Funktsiya: sum(a, b) funksiyasi (a + b; ni qaytarish) */

var str = "Ob'ekt: " + (); console.log(str); // Ob'ekt: str = "Masiv: " + ; console.log(str); // Massiv: 1,2,3 funktsiya sum(a, b) ( a + b; qaytarish; ) str = "Funktsiya: " + yig'indisi; console.log(str); /* Funktsiya: sum(a, b) funksiyasi (a + b; ni qaytarish) */

Haqiqatan ham, ob'ektni satrga o'tkazishda usul bilvosita chaqiriladi toString, buni ham aniq deb atash mumkin.

var p = ( x: 2 , y: 4 ) , str; str = p.toString(); console.log(typeof str); // string console.log (str) ; // str = [ 1 , 2 , 3 ] .toString (); console.log(typeof str); // string console.log (str) ; // 1,2,3

var p = (x: 2, y: 4), str; str = p.toString(); console.log (turi str); // string console.log(str); // str = .toString(); console.log (turi str); // string console.log(str); // 1,2,3

Raqamli konvertatsiya

Raqamga o'tkazish matematik amallarni bajarishda va turdagi quyma (==, !=) bilan taqqoslash operatsiyasini bajarishda va qiymat bilan sodir bo'ladi. yolg'on Va bo'sh massiv turi 0 qiymatiga aylantiriladi raqam.

var a = rost + rost + rost; // 1 + 1 + 1 console.log(a); // 3

Bo'sh bo'lmagan massiv, ob'ekt va funksiya arifmetik ifodalarda ishlatilganda satrga o'tkaziladi.

var arr = [1, 2, 3]; console.log(arr + 4); // 1,2,34 funktsiya sum(a, b) ( a + b; qaytarish; ) console.log (sum + 5 ) ; // funksiya summasi(a, b)(a + b; qaytaring)5

var arr = ; console.log(arr + 4); // 1,2,34 funksiya summasi(a, b)(a + b; qaytaring) console.log(sum + 5); // funksiya summasi(a, b)(a + b; qaytaring)5

Ko'rib turganingizdek, js-da yashirin turdagi konvertatsiya qilish har doim ham aniq emas, shuning uchun siz aniq turdagi konvertatsiya qilish uchun funktsiyalardan foydalanib, undan qochishingiz kerak, masalan, parseInt, parseFloat Va toString.

Ana xolos. Har doimgidek, sizga omad!

Agar xatolikni sezsangiz, matn qismini tanlang va Ctrl+Enter tugmalarini bosing
ULOSING: