यदि आप ईसीएमएस्क्रिप्ट 3 विनिर्देश को देखते हैं तो आप देखेंगे कि आदिम मूल्य प्रकार शून्य और अपरिभाषित नल और अपरिभाषित ऑब्जेक्ट्स के साथ नहीं हैं।क्यों संख्या अक्षरों की संख्या विधियों तक पहुंच नहीं है?
>> Null
ReferenceError: Null is not defined
अन्य आदिम मूल्य प्रकार संख्या, स्ट्रिंग और बूलियन प्रकार के साथ अंक, स्ट्रिंग और बूलियन वस्तुओं जो आप वैश्विक क्षेत्र से संदर्भित कर सकते हैं की क्या ज़रूरत है।
>>var n = 1;
>>n.toString();
"1"
रूप
>>var n = 1;
>>Number.prototype.toString.call(n);
"1"
Booleans और एक ही है:
>>Number
function Number() { [native code] }
>>Boolean
function Boolean() { [native code] }
इन आदिम मूल्य प्रकार के लिए उद्देश्य ऐसे toString
और valueOf
उनके संबंधित आदिम मूल्य प्रकार के लिए तरीके के रूप में प्रदान करना है तार भी इस तरह से काम करते हैं:
>>var b = true;
>>b.toString();
"true"
>>Boolean.prototype.toString.call(b);
"true"
आप देख सकते हैं कि आदिम मूल्य वस्तुओं उनके साथ वस्तु के तरीकों का उपयोग कर रहे हैं जब आप प्रकार मिश्रण करने का प्रयास करें:
>>Boolean.prototype.toString.call(n);
TypeError: Boolean.prototype.toString is not generic
>>Number.prototype.toString.call(b)
TypeError: Number.prototype.toString is not generic
दिलचस्प बात यह है बूलियन और स्ट्रिंग शाब्दिक प्रकार के लिए पर्याप्त है, तो आप से सीधे इन तरीकों कॉल कर सकते हैं शाब्दिक:
>>true.toString();
"true"
>>Boolean.prototype.toString.call(true)
"true"
>>"moo".toString();
"moo"
>>String.prototype.toString.call("moo")
"moo"
आदिम मूल्यों बातिल और अपरिभाषित है, क्योंकि वे अशक्त और अपरिभाषित वस्तुओं के साथ इन बातों को नहीं कर सकते नहीं है:
>>Null
ReferenceError: Null is not defined
>>null.toString()
TypeError: Cannot call method 'toString' of null
आदिम मूल्य प्रकार संख्या दोनों के मिश्रण की तरह व्यवहार करती है। आप एक शाब्दिक पर toString
कॉल कर सकते हैं अगर आप सीधे संख्या के प्रोटोटाइप वस्तु की विधि का उपयोग करें:
>>Number.prototype.toString.call(1);
"1"
लेकिन तुम तार और बूलियन के साथ की तरह आप कर सकते हैं शाब्दिक से ही विधि का उपयोग नहीं कर सकते हैं:
>>1.toString()
SyntaxError: Unexpected token ILLEGAL
क्यों क्या यह संख्या अक्षर है भले ही बूलियन और स्ट्रिंग से अलग-अलग व्यवहार करते हैं, भले ही कोई संख्या वस्तु हो?
(1).toString()
नंबर दशमलव हो सकता है, इसलिए वाक्य रचना एक में समाप्त होने के लिए:
यह भी देखें [मैं एक बिंदु के साथ एक पूर्णांक की संपत्ति का उपयोग क्यों नहीं कर सकता?] (http://stackoverflow.com/q/9380077/1048572) – Bergi
ओह, अच्छे अंक। यकीन नहीं था। उस अन्य पोस्ट में अच्छी जानकारी थी। धन्यवाद! –