2011-12-15 9 views
18

मुझे लगता है कि Number.POSITIVE_INFINITY का मान Infinity है, और Number.NEGATIVE_INFINITY का मान -Infinity है।इन्फिनिटी बनाम संख्या। POSITIVE_INFINITY

एक कारण मैं Number.POSITIVE_INFINITY बजाय Infinity, या Number.NEGATIVE_INFINITY बजाय -Infinity का प्रयोग करेंगे है?

संबंधित नोट पर, isFinite के साथ कोई क्रॉस-ब्राउज़र समस्याएं हैं?

उत्तर

17

Number.POSITIVE_INFINITY, एक निरंतर है और इस तरह overwritable नहीं है जबकि Infinitywindow की संपत्ति है और overwritable है:

Number.POSITIVE_INFINITY = 123; 
Number.POSITIVE_INFINITY; // Infinity 

Infinity = 123; 
Infinity; // 123 

यह undefined या NaN के रूप में एक ही बात है, जो मूल रूप से window और overwritable की संपत्ति हैं है । window.undefined पर भरोसा करना एक अच्छी बात नहीं है; बल्कि आप एक 'असली' undefined स्वयं बनाना चाहते हैं (जैसे एक स्व-निष्पादित फ़ंक्शन में जहां आप कोई तर्क नहीं देते हैं लेकिन इसे फ़ंक्शन में घोषित करते हैं)।

चश्मा:

15.7.3.6 Number.POSITIVE_INFINITY

Number.POSITIVE_INFINITY का मूल्य +∞ है।

यह गुण गुण { [[Writable]]:false, [[Enumerable]]: false, [[Configurable]]: false } है।

ES5 में, अधिलेखन क्षमता निकाला जा चुका है:

15.1.1: मूल्य गुण NaN, Infinity, और वैश्विक वस्तु की undefined केवल पढ़ने के लिए किया जा करने के गुण बदल दिया गया है।


बारे isFinite: मैं एक बार एक question क्यों गूगल बंद लाइब्रेरी isFinite के लिए एक कस्टम समारोह लागू करता है के रूप में तैनात है, और जवाब वहाँ शायद कुछ क्रॉस-ब्राउज़र विसंगति था कि, हालांकि यह स्पष्ट नहीं है था जो ब्राउज़र और कौन सी असंगतता।

+4

+1, मुझे कुछ नया – Joe

+1

सीखना अच्छा लगता है, लेकिन आपने वास्तव में जवाब नहीं दिया कि 'नंबर। POSITIVE_INFINITY'' इन्फिनिटी 'के समान परिणाम देता है, इस तथ्य के अलावा कि' इन्फिनिटी 'पुराने ब्राउज़र में बदल सकता है। – jfriend00

+1

@ jfriend00: यह सवाल नहीं है अगर मैं इसे सही ढंग से समझ रहा हूं। यह पूछ रहा है कि 'इन्फिनिटी' पर 'Number.POSITIVE_INFINITY' का उपयोग करने का कोई कारण है या नहीं, और यह कारण एक वैध व्यक्ति है जो मुझे लगता है। – pimvdb

संबंधित मुद्दे