5

कहें कि मेरे पास Google- ऐप्स स्क्रिप्ट में निम्न टूटा हुआ उदाहरण फ़ंक्शन है। समारोह एक स्ट्रिंग तर्क के साथ एक Google शीट कहा जा करने का इरादा है:आप Google Apps स्क्रिप्ट डीबगर पर तर्क कैसे देते हैं?

function myFunction(input) { 
    var caps = input.toUpperCase() 
    var output = caps.substrin(1, 4) 
    return output 
} 

जब आप myfunction और प्रेस डिबग का चयन करें, वहाँ के रूप में "substrin ऐसी कोई विधि नहीं है जैसा कि इस उदाहरण स्क्रिप्ट लाइन 3 पर तोड़ना चाहिए जबकि (), "यह लाइन 2 पर, सभी बड़े अक्षरों में टूट जाएगा क्योंकि आप अपरिभाषित नहीं डाल सकते:

TypeError: Cannot call method "toUpperCase" of undefined. (line 2, file "Code")

प्रश्न: वहाँ के लिए एक स्ट्रिंग पारित करने के लिए एक अधिकारी तरीका है एक परीक्षण के लिए गूगल-एप्लिकेशन स्क्रिप्ट/अतिरिक्त कार्य किए बिना डीबगिंग

function myOtherFunction() { 
myFunction("testString") 
} 

और डीबगिंग?

उत्तर

6

आपके द्वारा लिखे गए फ़ंक्शन को पैरामीटर की आवश्यकता होती है और फ़ंक्शन में डिफ़ॉल्ट मान को छोड़कर इसे टालने का कोई तरीका नहीं है। नीचे उदाहरण देखें

function myFunction(input) { 
    input= input||'test'; 
    var caps = input.toUpperCase(); 
    var output = caps.substrin(1, 4); 
    return output; 
} 
+0

तो अगर इनपुट अपरिभाषित के रूप में शुरू होता है तो यह 'परीक्षण' का चयन करेगा, लेकिन अन्यथा इनपुट का उपयोग करें? यह कैसे तय करता है कि किस का उपयोग करना है? और इसके लिए कोई Google UI नहीं है? – Menasheh

+0

हां। आउटपुट –

+0

इनपुट = इनपुट || को विज़ुअलाइज़ करने में सक्षम होने से पहले लॉगर.लॉग (आउटपुट) जोड़ें। 'टेस्ट' के लिए शॉर्टेंड है यदि (! इनपुट) इनपुट = 'परीक्षण'; तार्किक या ("||") इनपुट को सत्य या गलत में परिवर्तित करता है, और यदि गलत है, तो दूसरा ऑपरेंड चुनता है। नोट, हालांकि, 0 0 झूठे का मूल्यांकन करेगा, इसलिए यदि 0 पास हो गया है, इनपुट 'परीक्षण' होगा। आप इसका उपयोग करके इस से बच सकते हैं: इनपुट = (इनपुट! == अपरिभाषित)? इनपुट: 'परीक्षण'; दूसरी ओर, * कोई भी * स्ट्रिंग सत्य के रूप में परीक्षण करेगी: ("", "0", "झूठा", "अपरिभाषित") सभी सच्चाई का मूल्यांकन करेंगे। – HardScale

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