मेरे पास एक चर है जो या तो बूलियन false
, या एक पूर्णांक (0 सहित) हो सकता है। मैं की तरह एक स्विच बयान में यह रखना चाहता हूँ:क्या जावास्क्रिप्ट स्विच स्टेटमेंट में सख्त तुलना करना सुरक्षित है?
switch(my_var){
case 0:
// Do something
break;
case 1:
// Do something else
break;
case false:
// Some other code
}
Google Chrome में अपनी परीक्षण में, यह पूरी तरह से काम करने लगता है, लेकिन मैं एक छोटे से इसका इस्तेमाल करने की वजह से मुझे डर लग रहा परेशान कर रहा हूँ कि कुछ ब्राउज़रों में , यदि my_var
false
है, तो यह 0 == false
के बाद से पहला मामला निष्पादित कर सकता है।
मैं सोच रहा हूं कि जावास्क्रिप्ट में कुछ भी आधिकारिक है या नहीं, जो कहता है कि स्विच स्टेटमेंट सख्त तुलना का उपयोग करेगा जैसे 0 !== false
, लेकिन मुझे कुछ भी नहीं मिल रहा है, और मुझे यकीन नहीं है कि यह ठीक से काम करेगा या नहीं विभिन्न जावास्क्रिप्ट इंजन। क्या किसी को पता है कि स्विच स्टेटमेंट द्वारा की गई तुलना सख्त होने की गारंटी है?
यह [1 999 से इस तरह की पार्टीिंग] रहा है [http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition, % 20 दिसंबर% 201999.pdf) (पृष्ठ 68, एस 12.11, केसब्लॉक # 3) – Walf