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 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'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.
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.
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.
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:
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.
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
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.
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.
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
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 |
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 stoli | Mobil | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Chet | Firefox | Internet Explorer | Opera | Safari | Android veb-ko'rinishi | Android uchun Chrome | Android uchun Firefox | Android uchun Opera | IOS uchun Safari | Samsung Internet | Node.js | |
parseInt | Chrome toʻliq qoʻllab-quvvatlash 1 | Edge to'liq qo'llab-quvvatlash 12 | Firefox to'liq qo'llab-quvvatlash 1 | IE To'liq qo'llab-quvvatlash 3 | Opera to'liq qo'llab-quvvatlash Ha | Safari to'liq qo'llab-quvvatlash Ha | WebView Android to'liq qo'llab-quvvatlash 1 | Chrome Android to'liq qo'llab-quvvatlash 18 | Firefox Android to'liq qo'llab-quvvatlash 4 | Safari iOS to'liq qo'llab-quvvatlash Ha | Samsung Internet Android To'liq qo'llab-quvvatlash 1.0 | nodejs To'liq qo'llab-quvvatlash Ha | |
Boshlovchi nol qatorlar sakkizlik emas, o'nlikdir | Chrome toʻliq qoʻllab-quvvatlash 23 | Edge to'liq qo'llab-quvvatlash 12 | Firefox to'liq qo'llab-quvvatlash 21 | IE To'liq qo'llab-quvvatlash 9 | Opera to'liq qo'llab-quvvatlash Ha | Safari to'liq qo'llab-quvvatlash 6 | WebView Android to'liq qo'llab-quvvatlash 4.4 | Chrome Android to'liq qo'llab-quvvatlash 25 | Firefox Android to'liq qo'llab-quvvatlash 21 | Opera Android To'liq qo'llab-quvvatlash Ha | Safari iOS to'liq qo'llab-quvvatlash 6 | Samsung Internet Android To'liq qo'llab-quvvatlash Ha | nodejs 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.
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.
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.
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
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
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!