ایکما اسکریپت تبدیلی نوع
- ਪਿਛਲਾ ਪੰਨਾ ایکما اسکریپت ابتدائی نوع
- ਅਗਲਾ ਪੰਨਾ ایکما اسکریپت مراجع نوع
所有程序设计语言最重要的特征之一是具有进行类型转换的能力。
ECMAScript 给开发者提供了大量简单的类型转换方法。
大部分类型具有进行简单转换的方法,还有几个全局方法可以用于更复杂的转换。无论哪种情况,在 ECMAScript 中,类型转换都是简短的一步操作。
转换成字符串
ECMAScript 的 Boolean 值、数字和字符串的原始值的有趣之处在于它们是伪对象,这意味着它们实际上具有属性和方法。
例如,要获得字符串的长度,可以采用下面的代码:
var sColor = "red"; alert(sColor.length); //输出 "3"
尽管 "red" 是原始类型的字符串,它仍然具有属性 length,用于存放字符串的大小。
总而言之,3 种主要的原始类型 Boolean 值、数字和字符串都有 toString() 方法,可以把它们的值转换成字符串。
提示:آپ چاہئیں کہ،
Boolean ਕਲਾਸ ਦੇ toString() ਮੈਥਡ ਵਾਲੇ ਸਿਰਫ "true" ਜਾਂ "false" ਪ੍ਰਿਟ ਕਰਦੇ ਹਨ, ਪ੍ਰਤੀਕਸ਼ ਨੂੰ ਵਾਲੇ ਵੇਰਵੇ ਦੇ ਅਨੁਸਾਰ ਹੈ:
var bFound = false; alert(bFound.toString()); //ਪ੍ਰਤੀਕਸ਼ "false"
Number ਕਲਾਸ ਦੇ toString() ਮੈਥਡ ਵਾਲੇ ਬਹੁਤ ਵਿਸ਼ੇਸ਼ ਹੈ, ਇਸ ਕਲਾਸ ਵਿੱਚ ਦੋ ਮੋਡ ਹਨ, ਜਿਵੇਂ ਕਿਮੂਲ ਮੋਡਅਤੇਬੇਸ ਮੋਡਮੂਲ ਮੋਡ ਵਿੱਚ, toString() ਮੈਥਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅੰਕ ਦਾ ਪ੍ਰਤੀਕਸ਼ ਦੇਣਾ ਹੈ (ਚਾਹੇ ਉਹ ਸੰਖਿਆ ਹੋਵੇ, ਫਲੌਟਿੰਗ ਪੁਆਇਨਟ ਹੋਵੇ ਜਾਂ ਵਿਗਿਆਨਕ ਗਿਣਤੀ ਹੋਵੇ), ਜਿਵੇਂ ਕਿ ਹੇਠ ਲਿਖੇ ਅਨੁਸਾਰ:
var iNum1 = 10; var iNum2 = 10.0; alert(iNum1.toString()); //ਪ੍ਰਤੀਕਸ਼ "10" alert(iNum2.toString()); //ਪ੍ਰਤੀਕਸ਼ "10"
نوٹ:ਮੂਲ ਮੋਡ ਵਿੱਚ, ਅੰਕ ਦੀ ਪਹਿਲੀ ਪ੍ਰਕਾਸ਼ਨ ਕਿਸਮ ਕਿਉਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ, Number ਕਲਾਸ ਦੇ toString() ਮੈਥਡ ਵਾਲੇ ਪ੍ਰਤੀਕਸ਼ ਦਾ ਦਸਤਰੀ ਪ੍ਰਤੀਕਸ਼ ਹੈ। ਇਸ ਲਈ ਅੱਠਵੀਂ ਅਤੇ ਸ਼ੋਰਟ ਬੇਸ ਲਈ ਘੁੰਮੇ ਹੋਏ ਅੰਕ ਦਾ ਪ੍ਰਤੀਕਸ਼ ਦਸਤਰੀ ਪ੍ਰਤੀਕਸ਼ ਹੈ。
Number ਕਲਾਸ ਦੇ toString() ਮੈਥਡ ਦੇ ਬੇਸ ਮੋਡ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਤਰੀਕੇ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂਬੇਸਅੰਕ ਨੂੰ ਪ੍ਰਿਟ ਕਰੋ, ਉਦਾਹਰਣ ਵਜੋਂ ਦਸਤਰੀ ਬੇਸ ਹੈ 2, ਅੱਠਵੀਂ ਬੇਸ ਹੈ 8, ਸ਼ੋਰਟ ਬੇਸ ਹੈ 16。
ਬੇਸਇਹ ਸਿਰਫ਼ ਬੇਸ ਵਿੱਚ ਬਦਲਣ ਦੀ ਬਾਕੀ ਕਿਸਮ ਹੈ, ਜੋ toString() ਮੈਥਡ ਦਾ ਪੈਰਾਮੀਟਰ ਹੈ:
var iNum = 10; alert(iNum.toString(2)); //ਪ੍ਰਤੀਕਸ਼ "1010" alert(iNum.toString(8)); //ਪ੍ਰਤੀਕਸ਼ "12" alert(iNum.toString(16)); //ਪ੍ਰਤੀਕਸ਼ "A"
ਪਹਿਲਾਂ ਦੇ ਉਦਾਹਰਣਾਂ ਵਿੱਚ 10 ਅੰਕ ਦੀਆਂ 3 ਵੱਖ-ਵੱਖ ਰੂਪਾਂ ਵਿੱਚ ਪ੍ਰਿਟ ਕੀਤੀ ਗਈ, ਜਿਵੇਂ ਕਿ ਦਸਤਰੀ ਰੂਪ, ਅੱਠਵੀਂ ਰੂਪ ਅਤੇ ਸ਼ੋਰਟ ਰੂਪ। ਐੱਚਟੀਐੱਮਐੱਲ ਹਰ ਰੰਗ ਲਈ ਸ਼ੋਰਟ ਰੂਪ ਵਰਤਦਾ ਹੈ, ਐੱਚਟੀਐੱਮਐੱਲ ਵਿੱਚ ਅੰਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਇਸ ਕਾਰਜ ਦਾ ਬਹੁਤ ਫਾਇਦਾ ਹੁੰਦਾ ਹੈ。
نوٹ:ਅੰਕਾਂ 'toString(10)' ਦੀ ਵਰਤੋਂ ਅਤੇ 'toString()' ਨਾਲ ਸਮਾਨ ਹੁੰਦੀ ਹੈ; ਉਹਨਾਂ ਦਾ ਪ੍ਰਤੀਕਸ਼ ਦਸ ਦੀ ਰੂਪ ਹੁੰਦਾ ਹੈ。
ਦੇਖੋ:
请参阅 JavaScript ਸੰਦਰਭ ਮੰਜਲਾਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਸਾਰੀਆਂ toString() ਮੈਥਡ ਦੀਆਂ ਵਿਸਤ੍ਰਿਤ ਜਾਣਕਾਰੀਆਂ:
تبدیل به عدد
ECMAScript دو روش برای تبدیل مقادیر اولیه غیر عددی به اعداد ارائه میدهد، به ترتیب parseInt() و parseFloat().
همانطور که ممکن است فکر کنید، اولی اعداد را به اعداد صحیح تبدیل میکند و دومی اعداد را به اعداد اعشاری تبدیل میکند. تنها زمانی این روشها به درستی کار میکنند که به نوع String فراخوانی شوند؛ در غیر این صورت NaN برمیگردانند.
parseInt()
قبل از اینکه parseInt() و parseFloat() بتوانند رشته را به عدد تبدیل کنند، آنها به دقت آن را تحلیل میکنند.
روش parseInt() ابتدا در موقعیت 0 رشته را بررسی میکند تا ببیند آیا حرف معتبر عددی است یا خیر؛ اگر نیست، این روش NaN را برمیگرداند و دیگر عملیات را انجام نمیدهد. اما اگر حرف معتبر عددی باشد، این روش به حرف بعدی در موقعیت 1 میپردازد و بررسی مشابهی را انجام میدهد. این فرآیند ادامه دارد تا حرف غیر معتبر عددی پیدا شود، در این صورت parseInt() رشتهای که قبل از آن حرف قرار دارد را به عدد تبدیل میکند.
برای مثال، اگر بخواهید رشته "12345red" را به عدد صحیح تبدیل کنید، parseInt() باز 12345 را برمیگرداند، زیرا وقتی به حرف r برسد، فرآیند بررسی متوقف میشود.
اعداد کلیدی شامل در رشتهها به درستی به اعداد تبدیل میشوند، به عنوان مثال "0xA" به درستی به عدد 10 تبدیل میشود. اما رشته "22.5" به 22 تبدیل میشود زیرا برای اعداد صحیح، نقطه یک کاراکتر غیر معتبر است.
برخی از مثالها به شرح زیر است:
var iNum1 = parseInt("12345red"); //باز 12345 var iNum1 = parseInt("0xA"); //باز 10 var iNum1 = parseInt("56.9"); //باز 56 var iNum1 = parseInt("red"); //باز NaN
روش parseInt() همچنین دارای حالت پایه است که میتواند رشتههای دودوئیم، هکسمی، دودسی یا هر نوع دیگر از سیستم علامتگذاری را به عدد صحیح تبدیل کند. پایه توسط پارامتر دوم روش parseInt() تعیین میشود، بنابراین برای تبدیل مقادیر هکسمی، باید به این شکل از روش parseInt() استفاده کنید:
var iNum1 = parseInt("AF", 16); //باز 175
طبیعتاً، برای دودوئیم، هکسمی و حتی دودسی (مودل پیشفرض)، میتوانید به این شکل از روش parseInt() استفاده کنید:
var iNum1 = parseInt("10", 2); //باز 2 var iNum2 = parseInt("10", 8); //返回 8 var iNum3 = parseInt("10", 10); //返回 10
如果十进制数包含前导 0,那么最好采用基数 10,这样才不会意外地得到八进制的值。例如:
var iNum1 = parseInt("010"); //返回 8 var iNum2 = parseInt("010", 8); //返回 8 var iNum3 = parseInt("010", 10); //返回 10
在这代码中,两行代码都把字符 "010" 解析成一个数字。第一行代码把这个字符串看作八进制的值,解析它的方式与第二行代码(声明基数为 8)相同。最后一行代码声明基数为 10,所以 iNum3 最后等于 10。
参阅
请参阅 JavaScript ਸੰਦਰਭ ਮੰਜਲਾ提供的有关 parseInt() 方法的详细信息:parseInt()。
parseFloat()
parseFloat() 方法与 parseInt() 方法的处理方式相似,从位置 0 开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字符之前的字符串转换成整数。
不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的。parseFloat() 会把这个小数点之前的字符转换成数字。这意味着字符串 "11.22.33" 将被解析成 11.22。
parseFloat() روش کا ایک دوسرا فرق یہ ہے کہ فائل نا جسمانی نمائش کا استعمال کیا جاتا ہے، نا کہ کسوں یا کسائیں، بلکہ یہ سلسلہ دسویں نمائش کی شکل میں ہونا چاہئے۔ اس طریقے میں، اس میں سے پچھلے 0 جو صرف سلسلے کا حصہ نہیں ہو سکتا، لگا جائے گا، جس کا نتیجہ یہ ہو گا کہ آئی سی 0102 کو 102 بنادیا جائے گا۔ کسوں کسائیں کا 0xA کو اس طریقے سے باز کار نہیں کیا جائے گا، کیونکہ کسوں کسائیں کا فائل نا جسمانی نمائش کا استعمال کیا جاتا ہے، x نہیں اپنے موصولی کا حصہ بن سکتا۔(نوٹ:پر بات، کسی بھی بروزر کی کچھ عملکرد میں 0 باز کار نہیں، بلکہ NaN.)
بالاخره، parseFloat() روش نہیں بنیادی ماڈل نہیں ہے。
ایک مثال دوسر از استفاده parseFloat() روش:
var fNum1 = parseFloat("12345red"); //باز کار 12345 var fNum2 = parseFloat("0xA"); //باز کار NaN var fNum3 = parseFloat("11.2"); //باز کار 11.2 var fNum4 = parseFloat("11.22.33"); //باز کار 11.22 var fNum5 = parseFloat("0102"); //返回 102 var fNum1 = parseFloat("red"); //返回 NaN
参阅
请参阅 JavaScript ਸੰਦਰਭ ਮੰਜਲਾ提供的有关 parseFloat() 方法的详细信息:parseFloat()。
强制类型转换
您还可以使用强制类型转换(type casting)来处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
نویش کا ذکر:cast کا مطلب "铸造" ہوتا ہے، جو "强制转换" کا مطلب کے ساتھ پائیدار آتا ہے。
ECMAScript میں دستیاب 3 طرح کا اپنایا جانا درج ذیل ہیں:
- Boolean(value) - مال کو بولین کی شکل میں تبدیل کردیا؛
- Number(value) - مال کو عدد کی شکل میں تبدیل کردیا (整数 یا دفعتی عدد میں تبدیل کردیا جاسکتا ہے);
- String(value) - مال کو سٹرنگ کی شکل میں تبدیل کردیا؛
یہ تینوں فنکشنوں میں سے کسی کو استعمال کرسکتا ہیں، تاکہ مال کو تبدیل کردیا جائے، جو مال کی اصل وجہ سے تبدیل کردیا جائے، جس سے غیر پسندیدہ نتائج آ سکتے ہیں。
Boolean() فنکشن
جب تبدیل کردی جانے والا مال کسی ساتھی کا سٹرنگ، غیر صفر عدد یا آئیٹم ہو تو Boolean() فنکشن نے صحیح رجوع کردیا، اگر مال خالی سٹرنگ، صفر عدد، undefined یا null ہو تو ناپائیدار رجوع کردیا۔
آپ میں سے کسی کی جانب سے ساتھیوں کا کد بجائے ساتھیوں کا کد کا استعمال کرسکتا ہیں:
var b1 = Boolean(""); //false - خالی سٹرنگ var b2 = Boolean("hello"); //true - غیر خالی سٹرنگ var b1 = Boolean(50); //true - غیر صفر عدد var b1 = Boolean(null); //false - null var b1 = Boolean(0); //false - صفر var b1 = Boolean(new object()); //true - آئیٹم
Number() فنکشن
Number() فنکشن کا اپنایا جانا parseInt() اور parseFloat() کی طویلتیوں کی طرح سے مشابہت رکھتا ہے، لیکن یہ پورا مال بجائے حصے کو تبدیل کردیا ہے。
آپ یاد آپتا کے ہیں کہ parseInt() اور parseFloat() کی طویلتیوں نے صرف پہلا نا صحیح حرف سے پہلے کا سٹرنگ کو تبدیل کردیا، لہذا "1.2.3" کو ترتیب سے "1" اور "1.2" کو تبدیل کردیا۔
Number() ਦੇ ਮਜ਼ਬੂਤ ਕਨਵਰਸ਼ਨ ਵਿੱਚ, "1.2.3" ਨੂੰ NaN ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇਗਾ ਕਿਉਂਕਿ ਪੂਰੀ ਸਟਰਿੰਗ ਕੀਮਤ ਨੂੰ ਨੰਬਰ ਵਿੱਚ ਬਦਲਣਾ ਨਹੀਂ ਸਕਦਾ ਹੈ।ਜੇਕਰ ਸਟਰਿੰਗ ਕੀਮਤ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਦਲੀ ਜਾ ਸਕਦੀ ਹੈ, ਤਾਂ Number() ਪਹਿਲਾਂ parseInt() ਮੱਦਦ ਕਰੇਗਾ ਜਾਂ parseFloat() ਮੱਦਦ ਕਰੇਗਾ।
ਹੇਠ ਦੇ ਸਾਰੇ ਤਾਲਿਕੇ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਕੀਮਤਾਂ 'ਤੇ Number() ਮੱਦਦ ਦੇ ਹੋਣ ਵਾਲੇ ਹਾਲਾਤ ਦਿੱਤੇ ਗਏ ਹਨ:
ਵਰਤੋਂ | ਨਤੀਜਾ |
---|---|
Number(false) | 0 |
Number(true) | 1 |
Number(undefined) | NaN |
Number(null) | 0 |
Number("1.2") | 1.2 |
Number("12") | 12 |
Number("1.2.3") | NaN |
Number(new object()) | NaN |
Number(50) | 50 |
String() ਫੰਕਸ਼ਨ
ਆਖਰੀ ਮਜ਼ਬੂਤ ਕਨਵਰਸ਼ਨ ਮੱਦਦ String() ਸਭ ਤੋਂ ਸਰਲ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਕਿਸੇ ਵੀ ਕੀਮਤ ਨੂੰ ਸਟਰਿੰਗ ਵਿੱਚ ਬਦਲ ਸਕਦੀ ਹੈ。
ਇਸ ਮਜ਼ਬੂਤ ਕਨਵਰਸ਼ਨ ਨੂੰ ਕਰਨ ਲਈ ਸਿਰਫ਼ ਪਾਸਦਾਨ ਕੀਮਤ ਦੀ toString() ਮੱਦਦ ਬੁਲਾਉਣੀ ਚਾਹੀਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ 12 ਨੂੰ "12" ਵਿੱਚ ਬਦਲਣਾ, true ਨੂੰ "true" ਵਿੱਚ ਬਦਲਣਾ, false ਨੂੰ "false" ਵਿੱਚ ਬਦਲਣਾ, ਇਸ ਤਰ੍ਹਾਂ ਹੀ。
ਮਜ਼ਬੂਤ ਕਨਵਰਸ਼ਨ ਨੂੰ ਸਟਰਿੰਗ ਵਿੱਚ ਕਰਨ ਅਤੇ toString() ਮੱਦਦ ਕਰਨ ਦਾ ਇੱਕਮਾਤਰ ਅੰਤਰ ਇਹ ਹੈ ਕਿ null ਅਤੇ undefined ਕੀਮਤਾਂ ਨੂੰ ਮਜ਼ਬੂਤ ਕਨਵਰਸ਼ਨ ਕਰਨ ਨਾਲ ਗਲਤੀ ਨਹੀਂ ਹੁੰਦੀ ਹੈ ਅਤੇ ਸਟਰਿੰਗ ਪੈਦਾ ਹੁੰਦੀ ਹੈ:
var s1 = String(null); //"null" var oNull = null; var s2 = oNull.toString(); //ਗਲਤੀ ਫਲਾਈਨ ਹੋਵੇਗੀ
ECMAScript ਵਰਗੇ ਕਮਜ਼ੋਰ ਟਾਈਪ ਭਾਸ਼ਾਵਾਂ ਨੂੰ ਹੱਲ ਕਰਦੇ ਸਮੇਂ ਮਜ਼ਬੂਤ ਟਾਈਪ ਕਨਵਰਸ਼ਨ ਬਹੁਤ ਮਦਦਗਾਰ ਹੁੰਦਾ ਹੈ, ਪਰ ਹੋਰ ਕੀਮਤ ਦੀ ਸਹੀਅਤ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ。
- ਪਿਛਲਾ ਪੰਨਾ ایکما اسکریپت ابتدائی نوع
- ਅਗਲਾ ਪੰਨਾ ایکما اسکریپت مراجع نوع