दिलचस्प पोस्ट
जावास्क्रिप्ट (स्पष्ट रूप से एक तरफ से) के लिए क्या परिभाषित किया गया है numpy.genfromtxt जो कि ट्यूप्ले जैसा दिखता है, उसमें सरणी पैदा करता है, 2 डी सरणी क्यों नहीं? Matplotlib 2 सबप्लॉट, 1 रंग बार स्प्लिट स्ट्रिंग में लंबाई स्ट्रिंग के द्वारा छोटे स्ट्रिंग्स में JQuery के साथ <input type = "text"> को बदलने के लिए कैसे करें? सी # घटनाओं सिंक्रोनस हैं? एंड्रॉइड एप्लिकेशन को अग्रभूमि में चेक करना है या नहीं? फ्रेगमेंट (एंड्रॉइड बिलिंग v3) से शुरूआती मुख पृष्ठ JavaFX में पारदर्शी पृष्ठभूमि के साथ स्पलैश स्क्रीन कैसे बनाएं यह पता लगाने के लिए कि कोई दिए गए स्ट्रिंग palindrome है या नहीं है palindrome एंड्रॉइड में एक छवि दृश्य में जीआईएफ छवि जोड़ना कस्टम DNS का उपयोग करने के लिए urllib2 को बताएं रिवर्स इंजीनियरिंग से एनएटीटी कोड को सुरक्षित रखें? जावास्क्रिप्ट ऑब्जेक्ट: स्ट्रिंग के रूप में नाम से वैरिएबल प्रॉपर्टी एक्सेस करें एसवीएन: क्या एक फ़ाइल को "कमिट न करें" के रूप में चिह्नित करने का कोई तरीका है?

क्या <बूलियन अभिव्यक्ति> && कथन () वैसे ही है (<बूलियन अभिव्यक्ति>) कथन ()?

दो समान हैं?

मान लीजिए आपके पास:

var x = true; 

और फिर आपके पास इनमें से एक है:

 x && doSomething(); 

या

 if(x) doSomething(); 

क्या दो वाक्यविन्यास के बीच कोई भिन्नता है? क्या मैंने चीनी का एक अच्छा सा भर में ठोकर खाई?

Solutions Collecting From Web of "क्या <बूलियन अभिव्यक्ति> && कथन () वैसे ही है (<बूलियन अभिव्यक्ति>) कथन ()?"

कड़ाई से बोलते हुए, वे एक ही परिणाम उत्पन्न करेंगे, लेकिन यदि आप किसी अन्य स्थिति की स्थिति के रूप में पूर्व मामले का उपयोग करते हैं, तो आपको असमान परिणाम मिलेंगे। इसका कारण यह है कि x && doSomething() के मामले में, doSomething() इसकी सफलता को दर्शाने के लिए एक मान वापस करेगा।

नहीं, वे समान नहीं हैं जबकि एक बयान है , AND ऑपरेटर एक अभिव्यक्ति है

इसका अर्थ है कि आप इसका परिणाम किसी अन्य अभिव्यक्ति में इस्तेमाल कर सकते हैं, जो आप एक बयान के साथ नहीं कर सकते हैं:

 var result = x && doSomething(); 

फिर भी, आपके मामले में दोनों का एक ही प्रभाव है। एक है जो अधिक पठनीय है और अपने कार्यक्रम संरचना को बेहतर प्रतिनिधित्व करता है का उपयोग करें; मैं अगर-कथन की सिफारिश करता था

लघु उत्तर: संख्या

लंबा जवाब:

एक ने कहा है @ स्टीव x && doSomething() एक अभिव्यक्ति है ,

जबकि if(x) doSomething(); एक बयान है ,

@ दानियल ली और @ बर्गी द्वारा सुझाए गए अनुसार, लगता है:

  • एक अभिव्यक्ति की गणना की गई है (मान वापस लौटा देना चाहिए)

  • एक बयान घोषित किया गया है (माना जाता है कि यहां कोई मान वापस नहीं लौटाया जाए, इसके बारे में सोचें कि साइड इफेक्ट्स )

यह भ्रमित क्यों है?

  • जेएस हमें लिखने की अनुमति देता है ( thatExpression );
  • जेएस हमें thatExpression; लिखने की अनुमति देता है thatExpression;

दोनों कुछ भी नहीं मानते हैं कुछ भी नहीं के doNothingWithValueOf बयान

कैसे चुनाव करें?

क्या आप _ का उपयोग करते हैं:

  • doSomething() एक के रूप में
    • अभिव्यक्ति, लगता है कि IsMyObjectWhatever() या MyObjectComputedValue() ,
    • या एक बयान के रूप में, ModifyMyObject() लगता है

और फिर: क्या आप x && doSomething() का प्रयोग अभिव्यक्ति के रूप में करते हैं ?

आप इस तरह की thisStatement( thatExpression ); को सोचकर समाप्त कर देंगे thisStatement( thatExpression ); हर जगह, लगता है:

  • () अभिव्यक्ति,
  • ; बयान।

तो मुझे क्यों चुनना चाहिए?

  • स्पष्ट है कि "यह काम करता है।" "यह सही है" के लिए खड़ा नहीं है
  • यदि कम स्पष्ट है, जब यह अंतर बनायेगा:

    • बस लगता है ()(()())()(); सही हो सकता है , (;) गलत है
    • चेक @wwaawaw जावास्क्रिप्ट: एक बयान और एक अभिव्यक्ति के बीच अंतर है?
    • एक्सल रौस्क्मेयर द्वारा अभिव्यक्ति-वि-स्टेटमेंट पोस्ट

एक शब्द संख्या में, दो बयान समान नहीं हैं, हालांकि विशिष्ट परिस्थितियों में आप परिणाम प्रस्तुत करते हैं, समान है।

x && doSomething(); एक अभिव्यक्ति है, पहले x मूल्यांकन, क्योंकि यह एक और है और x बाद से दूसरा तर्क ( doSomething() ) का मूल्यांकन किया जाता है। इस मामले में इसका अर्थ है कि विधि निष्पादित होती है। अगर x झूठे थे तो कुछ () निष्पादित नहीं किया जाएगा क्योंकि अभिव्यक्ति के परिणाम सही नहीं हो सकते।

if(x) doSomething(); एक कथन है एक्स के मान की जांच की जाती है, और अगर यह सच है तो if स्टेटमेंट का दायरा निष्पादित होता है।

मैंने इस बेला को एक साथ रखा है (छोटे बदलावों के साथ)।