जावास्क्रिप्ट संख्या और स्ट्रिंग घोषणा

वोट
0

मैं समझता हूँ कि कैसे मैं निम्नलिखित जावास्क्रिप्ट कोड पर एक सच्चे तर्क प्राप्त कर सकते हैं कि कोशिश:

var x = 10;
var y = 20;
var result = x + y;
document.getElementById(demo).innerHTML = result;

लिंक: https://www.w3schools.com/js/tryit.asp?filename=tryjs_numbers_add_strings4

निम्नलिखित कोड के OUTPUT इसके अलावा ऑपरेशन में = 1020। मेरे मन में मुझे लगता है कि यह सही है, क्योंकि यह एक स्ट्रिंग के रूप में नंबर दो के संयोजन है।

var x = 100;
var y = 10;
var z = x / y;   
document.getElementById(demo).innerHTML = z;

लिंक: https://www.w3schools.com/js/tryit.asp?filename=tryjs_numbers_string1

लेकिन निम्न कोड के OUTPUT डिवीजन ऑपरेशन में = 10 है और यह इस दो एक स्ट्रिंग के रूप में संख्या गिनती नहीं कर सकते हैं। यह संख्या के रूप में नंबर दो की गणना की। **** कृपया किसी को भी मुझे उस करने में मदद मैं इसे स्पष्ट रूप से समझ सकेंगे। ****

02/09/2018 को 05:05
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


6 जवाब

वोट
0

मैं आप के लिए यह पढ़ने के लिए सुझाव देते हैं।

http://2ality.com/2013/04/quirk-implicit-conversion.html

आदिम प्रकार संख्या:, अन्य प्रकार के प्रचालन valueOf () -> toString () -> लेखन त्रुटि

आदिम प्रकार स्ट्रिंग: अन्य प्रकार, toString (प्रचालन) -> valueOf () -> लेखन त्रुटि

02/09/2018 को 05:53
का स्रोत उपयोगकर्ता

वोट
0

जावास्क्रिप्ट एक शिथिल टाइप भाषा है। इसका मतलब यह है कि हम तार के साथ गणित, (उदाहरण के लिए कर सकते हैं "100" / "10" === 10) और जावास्क्रिप्ट स्वचालित रूप से पता चलता है कि यह संख्या के रूप में उन तार से समझना चाहिए।

लेकिन तब क्यों नहीं है "10" + "20"30 के बराबर?

जावास्क्रिप्ट (शायद खराब) एक ही ऑपरेटर (उपयोग करने का निर्णय +अतिरिक्त के रूप में रूप में अच्छी तरह स्ट्रिंग संयोजन के लिए)। इसका मतलब यह है कि वे तय करने के लिए संख्या की तरह तार तार के रूप में या इस मामले में संख्या के रूप में व्याख्या की जानी चाहिए, और स्ट्रिंग संयोजन जीता था। वास्तव में, यहां तक कि "10" + 20और 10 + "20"और 10 + "2" + 0सब निकलेगा "1020"। अगर वहाँ एक स्ट्रिंग है कहीं न कहीं , स्ट्रिंग संयोजन जीतता है।

02/09/2018 को 05:35
का स्रोत उपयोगकर्ता

वोट
0
var a  = "1022";            //variable a&b takes a string.
var b = "2";     
var c = a/b;                //a and b are converted to number type implicitly 
                            //because strings have no function with '/'.
document.write(c + "<br>"); //prints division between a and b (a/b).
c = toString();             //converts c to string explicitly.
document.write(c);          //shows an error as i said string cant be divided!.

मुझे पता है कि अगर मैं मदद की है!

02/09/2018 को 05:31
का स्रोत उपयोगकर्ता

वोट
0

जावास्क्रिप्ट में "+" ऑपरेटर अगर तर्क के किसी भी स्ट्रिंग है और "/" विभाजन ऑपरेटर केवल "विभाजन इसके साथ जुड़े आपरेशन है संयोजन ऑपरेटर के रूप में व्यवहार किया जाता है।

02/09/2018 को 05:21
का स्रोत उपयोगकर्ता

वोट
0

जावास्क्रिप्ट में, विभाजन ऑपरेटर implictly संख्या के तार धर्मान्तरित और विभाजन प्रदर्शन लेकिन इसके लिए जावास्क्रिप्ट के रूप में स्ट्रिंग और प्रदर्शन संयोजन यह समझता है।

02/09/2018 को 05:17
का स्रोत उपयोगकर्ता

वोट
0

जावास्क्रिप्ट आप एक उचित जवाब किस प्रकार का डेटा आप इसे देने की परवाह किए बिना देने के लिए अपना सर्वश्रेष्ठ देता है। अपने पहले उदाहरण में यह देखता है कि आप दो तार करने के लिए + ऑपरेटर आवेदन कर रहे हैं। यह (संयोजन) करने के लिए के लिए एक वैध बात है, इसलिए कोई बलात्कार किया जाता है - दो तार श्रेणीबद्ध कर रहे हैं।

अपने दूसरे उदाहरण में यह देखता है कि आप दो तार करने के लिए / ऑपरेटर आवेदन कर रहे हैं। यह करने के लिए एक वैध बात नहीं है, लेकिन संख्या के लिए है कि ऑपरेटर को लागू करने मान्य होगा, और तार आप इसे दोनों संख्याओं के रूप में प्रतिनिधित्व किया जा सकता है दे दी है, ताकि यह क्या करता है। यह उन संख्या में धर्मान्तरित और फिर इस विभाजन प्रदर्शन करती है।

यह ऑटो बलात्कार बहुत सुविधाजनक हो सकता है (यदि आप अन्य भाषाओं में के रूप में लगभग इतनी जावास्क्रिप्ट में प्रकारों के बारे में ज्यादा चिंता करने की ज़रूरत नहीं है)। कभी कभी यह भी एक सा खतरनाक है कि यह दे सकते हैं आप परिणाम आप उम्मीद नहीं है हो सकता है, लेकिन एक बार आप को समझने के लिए कैसे और कब बलात्कार लागू किया जाता है मिलता है, खतरा कुछ कम हो।

02/09/2018 को 05:17
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more