जब से मैं जे एस के साथ काम करना शुरू किया, मैं एक नंबर शाब्दिक पर एक समारोह को लागू करने का एकमात्र तरीका सोचा है, कोष्ठक के साथ लपेटकर द्वारा अभिव्यक्ति की स्थिति में डाल दिया है ताकि तरह है:जेएस में संख्या अक्षर पर कार्यों का आह्वान करने के नियम क्या हैं?
1.toString();
// SyntaxError: identifier starts immediately after numeric literal
(1).toString();
// "1"
आज यह, इसे करने के लिए मेरे पास हुआ:
0.1.toString();
// "0.1"
यह क्यों काम करता है? आधिकारिक कल्पना में एक सूचक महान होगा।
संपादित करें अस्पष्टता मेरा पहला विचार था, लेकिन फिर निर्णय लिया कि 1.toString()
में कोई अस्पष्टता नहीं है। मैंने पहले सोचा जितना गहरा है, लेकिन मुझे अभी भी लगता है कि मैं सही हूं।
संपत्ति के नाम अंक
var obj = { "1" : 1, "2" : 2 };
संपत्ति ऐसे नाम हैं जो अंक के साथ शुरू ही वर्ग कोष्ठक
obj.1;
// SyntaxError: Unexpected token ILLEGAL
obj['1'];
// 1
इसके अलावा के साथ संदर्भित किया जा सकता के साथ शुरू कर सकते हैं:: यहां इसका कारण
1['toString']();
// '1'
इसलिए, 1.
कोई भी गैर-अंकों के बाद हमेशा एक विधि कॉल या संपत्ति का उपयोग होगा, कभी दशमलव संख्या नहीं होगी। इसी तरह, 1.
किसी भी अंक के बाद हमेशा दशमलव संख्या होगी, कभी भी विधि कॉल या संपत्ति का उपयोग नहीं होगा।
एक नोट के रूप में, आप '1..toString()' का उपयोग कर सकते हैं, पहले '.' दशमलव बिंदु इंगित करता है, दूसरा फ़ंक्शन के लिए उपयोग इंगित करता है। – zzzzBov
संबंधित: http://stackoverflow.com/q/2300197 – CMS
चालाक, धन्यवाद zzzzBov और सीएमएस। – mwcz