ECMAScript मूल टाइप
- पिछला पृष्ठ ECMAScript मूल्य
- अगला पृष्ठ ECMAScript टाइप रूपांतर
ECMAScript में 5 तरह के मूल टाइप हैं (primitive type), यथा Undefined, Null, Boolean, Number और String।
typeof ऑपरेटर
typeof ऑपरेटर का एक पारामीटर है, जो जांच करने वाला वेरियेबल या मान है।उदाहरण के लिए:
var sTemp = "test string"; alert (typeof sTemp); //आउटपुट "string" alert (typeof 86); //आउटपुट "number"
वेरियेबल या मान पर typeof ऑपरेटर का आह्वान करने से निम्नलिखित मूल्यों में से एक वापस मिलेगा:
- undefined - यदि वेरियेबल Undefined क़िस्म का है
- boolean - यदि वेरियेबल Boolean क़िस्म का है
- number - यदि वेरियेबल Number क़िस्म का है
- string - यदि वेरियेबल String क़िस्म का है
- object - यदि वेरियेबल एक संदर्भ या Null क़िस्म का है
टिप्पणी:आपको इस प्रश्न का उत्तर मिल सकता है कि उन्हें null के मान के लिए typeof ऑपरेटर क्यों "Object" वापस देता है। यह वास्तव में JavaScript के प्रारंभिक कार्यान्वयन में एक त्रुटि थी जो ECMAScript द्वारा ली गई।अब null एक ऑब्जैक्ट के प्रतिनिधित्व के लिए माना जाता है, जिससे इस संघर्ष को समझा जा सकता है, लेकिन तकनीकी रूप से यह अभी भी आदर्श मूल्य है।
Undefined क़िस्म
जैसा कि पहले कहा गया है, Undefined क़िस्म केवल एक मूल्य का प्रतिनिधित्व करती है, यथा undefined।जब घोषित वेरियेबल को अनियन्त्रित किया जाता है, तो उस वेरियेबल का डिफ़ॉल्ट मूल्य undefined है।
var oTemp;
前面一行代码声明变量 oTemp,没有初始值。该变量将被赋予值 undefined,即 undefined 类型的字面量。可以用下面的代码段测试该变量的值是否等于 undefined:
var oTemp; alert(oTemp == undefined);
这段代码将显示 "true",说明这两个值确实相等。还可以用 typeof 运算符显示该变量的值是 undefined:
var oTemp; alert(typeof oTemp); //输出 "undefined"
सूचना:值 undefined 并不同于未定义的值。但是,typeof 运算符并不真正区分这两种值。考虑下面的代码:
var oTemp; alert(typeof oTemp); //输出 "undefined" alert(typeof oTemp2); //输出 "undefined"
前面的代码对两个变量输出的都是 "undefined",即使只有变量 oTemp2 从未被声明过。如果对 oTemp2 使用除 typeof 之外的其他运算符的话,会引起错误,因为其他运算符只能用于已声明的变量上。
例如,下面的代码将引发错误:
var oTemp; alert(oTemp2 == undefined);
当函数无明确返回值时,返回的也是值 "undefined",如下所示:
function testFunc() { {} alert(testFunc() == undefined); //输出 "true"
Null 类型
另一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。
alert(null == undefined); //输出 "true"
尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。
Boolean 类型
Boolean 类型是 ECMAScript 中最常用的类型之一。它有两个值 true 和 false (即两个 Boolean 字面量)。
भले ही false 0 से बदल नहीं आता, 0 को आवश्यकता पड़े तो false में बदला जा सकता है, इस प्रकार बोलियों में उनके उपयोग के लिए उनका उपयोग सुरक्षित है।
var bFound = true; var bLost = false;
Number टाइप
ECMA-262 में परिभाषित की गई सबसे विशिष्ट टाइप है Number टाइप। इस टाइप के द्वारा 32 बिट के इंटेज और 64 बिट के फ्लॉटिंग पॉइंट दोनों को प्रस्तुत किया जा सकता है。
सीधे भरे गए (दूसरे वेरियेबल से नहीं लिए गए) किसी भी संख्या को Number के रूप में देखा जाता है। उदाहरण के लिए, नीचे के कोड में देखा जा सकता है कि एक वेरियेबल को इंटेज वैल्यू को परिभाषित करने के लिए, इसे लिंग्वल 86 द्वारा परिभाषित किया गया है:
var iNum = 86;
आठांशी संख्या और शेषांशी संख्या
विन्यासी संख्या आठांशी (octal) या शेषांशी (hexadecimal) लिंग्वल के रूप में भी प्रस्तुत की जा सकती है। आठांशी लिंग्वल के पहला अंक 0 होना चाहिए, इसके बाद किसी आठांशी अंक (0-7) को जोड़ा जा सकता है, जैसे नीचे के कोड में देखा जा सकता है:
var iNum = 070; //070 दशांशी 56 के बराबर है
दशांशी लिंग्वल को बनाने के लिए, पहला अंक 0 होना चाहिए, इसके बाद x अक्षर, फिर अर्धांशी (0-9) अंक को जोड़ा जा सकता है। इसके अलावा, ये अक्षर बड़े या छोटे हो सकते हैं। उदाहरण के लिए:
var iNum = 0x1f; //0x1f दशांशी 31 के बराबर है var iNum = 0xAB; //0xAB दशांशी 171 के बराबर है
सूचना:हर विन्यासी संख्या आठांशी (octal) या शेषांशी (hexadecimal) लिंग्वल के रूप में प्रस्तुत की जा सकती है, लेकिन सभी गणितीय गणनाओं का परिणाम दशांशी रूप में ही आता है।
फ्लॉटिंग पॉइंट
फ्लॉटिंग पॉइंट वैल्यू को परिभाषित करने के लिए, अलग अलग दशांशयुक्त अंकों को शामिल करना चाहिए (उदाहरण के लिए, 1.0 के बजाय 1)। यह फ्लॉटिंग पॉइंट लिंग्वल के रूप में देखा जाता है। उदाहरण के लिए:
var fNum = 5.0;
फ्लॉटिंग पॉइंट लिंग्वल के दिलचस्पीय बात इसके लिए है कि जब इसके साथ किसी गणना को करने से पहले, वास्तव में जो जोड़ा जाता है वह एक स्ट्रिंग है।
वैज्ञानिक गणना
बहुत बड़ी या बहुत छोटी संख्याओं को वैज्ञानिक गणना रूप से प्रस्तुत किया जा सकता है, एक संख्या को अंक (दशांश अंक सहित) के साथ प्रस्तुत किया जा सकता है e (या E) के साथ, इसके बाद 10 के गुणा के बहुलकोण को जोड़ा जा सकता है। उदाहरण के लिए:
var fNum = 5.618e7
यह सूचकांक संख्या 56180000 के लिए प्रयोग किया जाता है। वैज्ञानिक गणना को गणितीय रूप से बदला जाए तो इस मान को प्राप्त किया जा सकता है: 5.618 x 107。
भी बहुत छोटे संख्याओं को वैज्ञानिक गणना रूप से प्रस्तुत किया जा सकता है, उदाहरण के लिए 0.00000000000000008 को 8-e के रूप में प्रस्तुत किया जा सकता है17यहाँ 10 को -17 बार गुणा किया गया है, जिसका अर्थ है कि इसे 10 को 17 बार विभाजित करना होगा)।ECMAScript में दस से अधिक पूर्वाभिष्टक 0 वाले फ्लॉटिंग प्वाइंट संख्यों को वैज्ञानिक गणना में बदल दिया जाता है।
सूचना:फ्लॉटिंग प्वाइंट मूल्यों को 64 बिट आईईईई 754 रूप में भी संग्रहीत किया जा सकता है, जिसका अर्थ है कि दशमलव मूल्य में अधिकतम 17 दशमलव स्थान हो सकते हैं।17 स्थान के बाद के दशमलव को अधिकतम करने से कुछ छोटे से गणितीय त्रुटियां हो सकती हैं।
विशिष्ट Number मूल्य
कुछ विशिष्ट मूल्यों को Number प्रकार में भी परिभाषित किया गया है।पहले दो हैं Number.MAX_VALUE और Number.MIN_VALUE, जो Number मूल्य समूह के बाहरी सीमानों को परिभाषित करते हैं।सभी ECMAScript संख्याएं इन दोनों मूल्यों के बीच होती हैं।हालांकि गणना से उत्पन्न संख्या इन दोनों मूल्यों के बीच नहीं हो सकती।
जब गणना से उत्पन्न संख्या Number.MAX_VALUE से बड़ी होती है, तो इसे Number.POSITIVE_INFINITY का मान दिया जाता है, जिसका अर्थ है कि अब कोई संख्या मूल्य नहीं है।इसी तरह, Number.MIN_VALUE से कम की गणना से उत्पन्न संख्या Number.NEGATIVE_INFINITY का मान दिया जाता है, जिसका अर्थ है कि अब कोई संख्या मूल्य नहीं है।यदि गणना से उत्पन्न अयोग्यता मूल्य है, तो उसे अन्य गणना में उपयोग किया जाना नहीं होता।
वास्तव में, अयोग्यता के विशिष्ट मूल्यों को Number प्रकार में भी परिभाषित किया गया है।पहले दो हैं Number.MAX_VALUE और Number.MIN_VALUE, जो Number मूल्य समूह के बाहरी सीमानों को परिभाषित करते हैं।सभी ECMAScript संख्याएं इन दोनों मूल्यों के बीच होती हैं।हालांकि गणना से उत्पन्न संख्या इन दोनों मूल्यों के बीच नहीं हो सकती।
इसलिए अगले अयोग्यता के समान, एक तरीके से किसी संख्या को अयोग्यता का निर्णय कर सकते हैं (आदर्शतया विशिष्ट अयोग्यताओं को अलग से परीक्षण नहीं करना है)।किसी भी संख्या पर isFinite() तरीके को बुलाया जा सकता है, ताकि संख्या अयोग्यता नहीं होने की पुष्टि की जा सके।उदाहरण के लिए:
var iResult = iNum * some_really_large_number; if (isFinite(iResult)) { alert("finite"); {} else { alert("infinite"); {}
अंतिम विशिष्ट मूल्य NaN है जो गैर संख्या (Not a Number) को प्रदर्शित करता है।NaN एक अजीब विशिष्ट मूल्य है।सामान्यतया यह स्थिति तब होती है जब किसी तरह के रूपांतरण (String, Boolean आदि) असफल होता है।उदाहरण के लिए blue शब्द को संख्या में बदलना असफल होगा क्योंकि उसके बराबर कोई संख्या नहीं है।अगले अयोग्यता के समान, NaN गणितीय गणना में भी नहीं उपयोगी है।NaN का एक अन्य अजीब गुण यह है कि यह अपने आपसे बराबर नहीं है, इसलिए नीचे दिए गए कोड गलत देखेगा false:
alert(NaN == NaN); //आउटपुट "false"
इस कारण, NaN मूल्य का उपयोग नहीं किया जाना अनुशासित है।function isNaN() बहुत अच्छी तरह से काम करता है:
alert(isNaN("blue")); //आउटपुट "true" alert(isNaN("666")); //आउटपुट "false"
String टाइप
String टाइप का अनूठा है कि यह एकमात्र निश्चित आकार के मूल टाइप नहीं है। यह 0 या अधिक Unicode अक्षरों को संग्रहीत कर सकता है, 16 बिट इंटीजर द्वारा प्रतिनिधित्व किया जाता है (Unicode एक अंतर्राष्ट्रीय अक्षर सेट है, इस शिक्षा में बाद में चर्चा की जाएगी)।
शब्द में हर अक्षर की एक विशिष्ट स्थिति है, पहला अक्षर स्थिति 0 से शुरू होता है, दूसरा अक्षर स्थिति 1 में होता है, इस प्रकार। इस माने में, शब्द में अंतिम अक्षर की स्थिति होगी शब्द की लंबाई से 1 कम:

अक्षर सादृश्य को दोहरे टिकट (""), या एकल टिकट ('') से घोषित किया जाता है। जबकि Java में तो टिकटों को दोहरे टिकटों से घोषित किया जाता है, अक्षरों को एकल टिकटों से घोषित किया जाता है। लेकिन ECMAScript में अक्षर टाइप नहीं होता है, इसलिए दोनों प्रकार के रूपांतरण का उपयोग किया जा सकता है। उदाहरण के लिए, नीचे के दोनों पंक्तियां सही हैं:
var sColor1 = "red"; var sColor2 = 'red';
String टाइप में कई अक्षर सादृश्य शामिल हैं, Java, C और Perl के डेवलपर्स को इसके साथ काफी परिचित होना चाहिए।
नीचे ECMAScript के अक्षर सादृश्यों को सूचीबद्ध किया गया है:
सादृश्य | अर्थ |
---|---|
\n | नवीन पृष्ठ |
\t | टैब |
\b | स्पेस |
\r | कार्रीज |
\f | पृष्ठ भांति |
\\\ | रिवर्स स्लैश |
\' | एकल टिकट |
\" | दो टिकट |
\0nnn | अष्टाधार संख्या nnn से प्रतिनिधित्व करने वाले अक्षर (n 0 से 7 तक के बीच का एक अष्टाधार संख्या है) |
\xnn | दशाधार संख्या nn से प्रतिनिधित्व करने वाले अक्षर (n 0 से F तक के बीच का एक दशाधार संख्या है) |
\unnnn | दशाधार संख्या nnnn से प्रतिनिधित्व करने वाले Unicode अक्षर (n 0 से F तक के बीच का एक दशाधार संख्या है) |
- पिछला पृष्ठ ECMAScript मूल्य
- अगला पृष्ठ ECMAScript टाइप रूपांतर