2016-01-08 7 views
5

जैसे स्ट्रिंग.फॉमकोडपॉइंट का उपयोग कर सकते हैं मैं अभी भी जावास्क्रिप्ट सीख रहा हूं और कीबोर्ड से इनपुट प्राप्त करने का अभ्यास कर रहा हूं। मैंने अभी String.fromCodePoint के बारे में सीखा है और ऐसा लगता है कि String.fromCharCode करता है सबकुछ लेने के लिए (मुझे) लगता है।क्या आप String.fromCodeCode

String.fromCodePoint ब्राउज़रों और उपकरणों द्वारा बड़े पैमाने पर समर्थित है और यदि हां, तो यह String.fromCharCode अप्रचलित बनाने के लिए, या वहाँ एक कारण आप के बजाय कभी कभी String.fromCharCode का प्रयोग करेंगे है करता है?

+2

ब्राउज़र संगतता http://kangax.github.io/compat-table/es6/#String.fromCodePoint – Apolo

उत्तर

4

fromCharCode अप्रचलित नहीं है अभी तक, लेकिन यह करता है, तो हो सकता है यह सभी ब्राउज़रों द्वारा समर्थित किया जाएगा। हालांकि fromCharCodetwice as fast के बारे में fromCodePoint

  • String.fromCodePoint() रूप में इंटरनेट एक्सप्लोरर और सफारी

  • String.fromCharCode() द्वारा समर्थित नहीं हमेशा के लिए के बाद से समर्थित है, जैसा कि तेजी से

  • अंतर दोगुना:

    हालांकि सबसे आम यूनिकोड मानों को 16-बिट संख्या के साथ प्रदर्शित किया जा सकता है (जैसा कि जावास्क्रिप्ट मानकीकरण के दौरान प्रारंभिक रूप से अपेक्षित था) और सेरकोड() से सबसे आम मानों (यानी, यूसीएस-2 मानों के लिए एक वर्ण को वापस करने के लिए उपयोग किया जा सकता है) यूटीएफ -16 के सबसे आम पात्रों के साथ सबसेट), सभी कानूनी यूनिकोड मानों (21 बिट्स तक) से निपटने के लिए, अकेले खरीकोड() अकेले अपर्याप्त है। चूंकि उच्च कोड बिंदु वर्ण एक वर्ण बनाने के लिए दो (निचले मान) "सरोगेट" संख्याओं का उपयोग करते हैं, इसलिए स्ट्रिंग.फॉमकोडपॉइंट() (ईएस 6 ड्राफ्ट का हिस्सा) का उपयोग ऐसी जोड़ी को वापस करने के लिए किया जा सकता है और इस प्रकार इन उच्च मूल्यवान वर्णों का पर्याप्त रूप से प्रतिनिधित्व करता है ।

+0

के लिए पर एक नज़र मुझे नहीं पता था कि fromCharCode बहुत तेजी से किया जाएगा ... उस स्पीड टेस्ट लिंक को साझा करने के लिए धन्यवाद। अभी के लिए मैं सिर्फ कोर कीबोर्ड से बुनियादी कीबोर्ड इनपुट के लिए चिपके रहूंगा। – freginold

4

String.fromCodePoint व्यापक रूप से समर्थित नहीं है, वास्तव में यह इंटरनेट एक्सप्लोरर और सफारी में और केवल क्रोम 41 और ऊपर, और फ़ायरफ़ॉक्स 2 9 और ऊपर में समर्थित नहीं है।

इसका मतलब यह नहीं है कि यह अप्रचलित है, इसका मतलब है कि यह एक नई विधि है, केवल पहले ES2015 में परिभाषित है।
इसका यह भी अर्थ है कि ब्राउज़र समर्थन समय में बेहतर होगा, क्योंकि ब्राउज़र ईसीएमएस्क्रिप्ट के 6 वें संस्करण में सभी नई सुविधाओं को लागू करते हैं।

अभी के लिए, यदि आप सभी मौजूदा ब्राउज़रों का समर्थन करने की आवश्यकता है तो उत्पादन उत्पादन के लिए यह बहुत उपयुक्त नहीं है, लेकिन MDN पर एक पॉलीफिल उपलब्ध है यदि आपको वास्तव में सभी ब्राउज़र में यह विधि उपलब्ध कराने की आवश्यकता है।

3

String.fromCharCode सभी ब्राउज़रों पर समर्थित है:
enter image description here

String.fromCodePoint ब्राउज़र समर्थन सीमित है:
enter image description here

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