एक चर से पहले एक प्लस प्रतीक का उद्देश्य क्या है?


262

यह वास्तव में एक साधारण प्रश्न की तरह लगता है, लेकिन मुझे कोई खोज नहीं करना था। क्या करता +dहै

function addMonths(d, n, keepTime) { 
    if (+d) {

माध्यम?



3
एक ही मुद्दा है, लेकिन अन्य पृष्ठ का शीर्षक सामान्य मामले का वर्णन नहीं करता है क्योंकि
geotheory

जवाबों:


312

+ऑपरेटर वस्तु की संख्यात्मक प्रस्तुति देता है। तो आपके विशेष मामले में, यह dगैर-शून्य संख्या है या नहीं , इस पर भविष्यवाणी करना प्रतीत होगा ।

संदर्भ यहाँ । और, जैसा कि टिप्पणियों में बताया गया है, यहां




मुझे आश्चर्य है कि जो अधिक कुशल है, फ़ंक्शन parseInt या प्लस ऑपरेटर का उपयोग करके एक पूर्णांक में एक स्ट्रिंग पार्स करें?
एक्रेलस्टीन

1
यह किस तरह से अलग है .parseInt()?
डैनियल डब्ल्यू।

1
जवाब में MDN लिंक से @acarlstein: "हालांकि एकतरफा नकार (-) भी गैर-संख्याओं को परिवर्तित कर सकता है, एक संख्या में किसी चीज़ को परिवर्तित करने के लिए यूनरी प्लस सबसे तेज़ और पसंदीदा तरीका है , क्योंकि यह संख्या पर कोई अन्य संचालन नहीं करता है । " (सिर्फ एक "आधिकारिक" उत्तर के लिए)
AN

22

यह एक unary "+" ऑपरेटर है जो एक संख्यात्मक अभिव्यक्ति देता है। यह वैसा ही होगा d*1, जैसा मैं मानता हूं।


12

जैसा कि अन्य उत्तरों में बताया गया है कि यह चर को एक संख्या में परिवर्तित करता है। विशेष रूप से उपयोगी है जब डी या तो एक संख्या या एक स्ट्रिंग हो सकता है समारोह जो किसी संख्या का मूल्यांकन करता है।

उदाहरण ( addMonthsप्रश्न में फ़ंक्शन का उपयोग करके ):

addMonths(34,1,true);
addMonths("34",1,true);

फिर +dसभी मामलों में एक संख्या का मूल्यांकन करेगा। इस प्रकार प्रकार की जांच करने की आवश्यकता को टालना और dसंख्या, फ़ंक्शन या स्ट्रिंग के आधार पर अलग-अलग कोड पथ लेना , जिसे संख्या में परिवर्तित किया जा सकता है।


+dAddMonths के पहले मंगलाचरण उदाहरण के साथ एक संख्या का मूल्यांकन नहीं करेंगे
गस क्रॉफोर्ड

सच है, मुझे नहीं पता कि जब मैंने यह लिखा तो मैंने क्या किया। +function(){...}एक का उत्पादन करेगा NaNसमारोह का मूल्यांकन नहीं
RubenLaguna

4
क्या आप पागल को हटाने के लिए अपना जवाब संपादित कर सकते हैं? यह बहुत भ्रामक है।
Buh Buh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.