تبدیل نوع (Type Conversion)
در جاوااسکریپت، «تبدیل نوع» یعنی عوض کردن نوعِ مقدار. مثلاً عدد به رشته. یا رشته به عدد. این کار یا با «تابع (Function)» انجام می شود، یا خود جاوااسکریپت خودکار انجام می دهد.
تبدیل رشته به عدد: Number()
تابع سراسری Number() رشته عددی را به «عدد (Number)» تبدیل می کند. رشته خالی صفر می شود. رشته غیرعددی «NaN» می شود.
Number("3.14");
Number(Math.PI);
Number(" ");
Number("");
// موارد نامعتبر
Number("99 88");
Number("John");
روش های کمکی
parseInt() برای عدد صحیح است. parseFloat() برای عدد اعشاری است. هر دو روی رشته کار می کنند.
عملگر تک ورودی + برای عددکردن
علامت + قبل از مقدار، سعی می کند آن را عدد کند. اگر نشد، «NaN» می شود.
let y = "5";
let x = +y;
let y = "John";
let x = +y;
// x === NaN
تبدیل عدد به رشته: String() و toString()
String() هر عددی را به «رشته (String)» تبدیل می کند. روی متغیر، مقدار، یا عبارت کار می کند.
let x = 123;
String(x);
String(123);
String(100 + 23);
روش دیگر: متد toString() روی عدد. نتیجه یکی است.
let x2 = 123;
x2.toString();
(123).toString();
(100 + 23).toString();
تبدیل تاریخ به عدد
می توانی تاریخ را به «تایم استمپ» تبدیل کنی. یعنی میلی ثانیه از 1970.
let d = new Date();
Number(d);
d.getTime();
تبدیل تاریخ به رشته
با String() یا Date.prototype.toString() تاریخ، خوانا می شود.
String(Date());
Date().toString();
تبدیل بولین به عدد و رشته
بولین «true/false» با Number() به 1 و 0 می شود. با String() به "true" و "false" می شود. toString() هم همین است.
Number(false);
Number(true);
String(false);
String(true);
false.toString();
true.toString();
تبدیل خودکار (Coercion)
جاوااسکریپت گاهی خودش تبدیل می کند. کنار هم گذاشتن رشته با عدد، عدد را رشته می کند. در کم کردن، رشته عددی به عدد می شود.
5 + null; // 5
"5" + null; // "5null"
"5" + 2; // "52"
"5" - 2; // 3
"5" * "2"; // 10
نکته: قبل از تبدیل خودکار، نوع را با typeof چک کن. برای تبدیل عدد به رشته هم بخش toString() را ببین.
گام های تمرینی
- با Number() چند رشته مختلف را عدد کن.
- با + یکتا، دو مقدار را تست کن.
- یک عدد را با toString به رشته ببر.
- یک Date را به getTime تبدیل کن.
- نمونه های تبدیل خودکار را خودت اجرا کن.
جمع بندی سریع
- Number، رشته عددی را عدد می کند.
- String و toString، عدد و تاریخ را رشته می کنند.
- + یکتا، مقدار را عدد می کند.
- بولین به عدد: true=1، false=0.
- الحاق رشته، عدد را رشته می کند.