From 8b9b15c846be385b528be0b5e9eba16f002a6867 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:47:24 +0100 Subject: unslug hi-in: move --- .../operators/operator_precedence/index.html | 312 +++++++++++++++++++++ .../index.html" | 312 --------------------- files/hi-in/web/javascript/typed_arrays/index.html | 180 ++++++++++++ .../index.html" | 180 ------------ 4 files changed, 492 insertions(+), 492 deletions(-) create mode 100644 files/hi-in/web/javascript/reference/operators/operator_precedence/index.html delete mode 100644 "files/hi-in/web/javascript/reference/operators/\340\244\221\340\244\252\340\244\260\340\245\207\340\244\237\340\244\260_\340\244\252\340\245\215\340\244\260\340\244\276\340\244\245\340\244\256\340\244\277\340\244\225\340\244\244\340\244\276/index.html" create mode 100644 files/hi-in/web/javascript/typed_arrays/index.html delete mode 100644 "files/hi-in/web/javascript/\340\244\237\340\244\276\340\244\210\340\244\252\340\245\215\340\244\241_\340\244\270\340\244\260\340\244\243\340\244\277\340\244\257\340\244\276\340\244\201/index.html" (limited to 'files/hi-in/web/javascript') diff --git a/files/hi-in/web/javascript/reference/operators/operator_precedence/index.html b/files/hi-in/web/javascript/reference/operators/operator_precedence/index.html new file mode 100644 index 0000000000..d21611e054 --- /dev/null +++ b/files/hi-in/web/javascript/reference/operators/operator_precedence/index.html @@ -0,0 +1,312 @@ +--- +title: ऑपरेटर प्राथमिकता +slug: Web/JavaScript/Reference/Operators/ऑपरेटर_प्राथमिकता +tags: + - ऑपरेटर + - जावास्क्रिप्ट + - प्राथमिकता +translation_of: Web/JavaScript/Reference/Operators/Operator_Precedence +--- +
{{jsSidebar("ऑपरेटर्स")}}
+ +

ऑपरेटर की प्राथमिकता उस तरीके को निर्धारित करती है जिसमें ऑपरेटरों को एक दूसरे के संबंध में पार्स (पद विच्छेदन) किया जाता है। उच्च प्राथमिकता वाले ऑपरेटर कम प्राथमिकता वाले ऑपरेटरों के ओपेरंड (संकार्य) बन जाते हैं।

+ +
{{EmbedInteractiveExample("pages/js/expressions-operatorprecedence.html")}}
+ + + +

संबद्धता

+ +

संबद्धता (एसोसिएटिविटी) उस तरीके को निर्धारित करती है जिसमें समान प्राथमिकता के ऑपरेटरों को पार्स (पद विच्छेदन) किया जाता है। उदाहरण के लिए, एक अभिव्यक्ति पर विचार करें:

+ +
a ऑपरेटर b ऑपरेटर c
+
+ +

बाएं-संबद्धता (बाएं-से-दाएं) का अर्थ है कि इसे (a ऑपरेटर b) ऑपरेटर c के रूप में संसाधित किया जाता है, जबकि दाएं-संबद्धता (दाएं-से-बाएं) का अर्थ है कि इसे ऑपरेटर (b ऑपरेटर c) के रूप में संसाधित किया जाता है। असाइनमेंट (नियुक्ती) ऑपरेटर दाएं-संबद्धता वाला हैं, इसलिए आप लिख सकते हैं:

+ +
a = b = 5;
+
+ +

अनुमानित परिणाम के साथ कि a और b को मूल्य 5 प्राप्त होता है। ऐसा इसलिए है क्योंकि असाइनमेंट ऑपरेटर असाइन (नियुक्त) किए गए मान को वापस देता है। सबसे पहले, b को 5 पर सेट किया गया है। फिर a को भी 5 पर सेट किया गया है, b = 5 का वापस किया गया मान, उर्फ असाइनमेंट ऑपरेटर का दायां ऑपरेंड।

+ +

तालिका

+ +

निम्नलिखित तालिका को उच्चतम (20) से निम्नतम (1) प्राथमिकता से आदेशित (जमाया) गया है।

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
प्राथमिकताऑपरेटर  प्रकारसंबद्धताऑपरेटर
20{{jsxref("Operators/Grouping", "Grouping")}}लागू नहीं( … )
19{{jsxref("Operators/Property_Accessors", "Member Access", "#Dot_notation")}}बाएं-से-दाएं… . …
{{jsxref("Operators/Property_Accessors", "Computed Member Access","#Bracket_notation")}}बाएं-से-दाएं… [ … ]
{{jsxref("Operators/new","new")}} (with argument list)लागू नहींnew … ( … )
Function Callबाएं-से-दाएं… ( … )
18{{jsxref("Operators/new","new")}} (without argument list)दाएं-से-बाएंnew …
17{{jsxref("Operators/Arithmetic_Operators","Postfix Increment","#Increment")}} … ++
{{jsxref("Operators/Arithmetic_Operators","Postfix Decrement","#Decrement")}}… --
16Logical NOTदाएं-से-बाएं! …
Bitwise NOT~ …
Unary Plus+ …
Unary Negation- …
Prefix Increment++ …
Prefix Decrement-- …
typeoftypeof …
voidvoid …
deletedelete …
awaitawait …
15Exponentiationदाएं-से-बाएं… ** …
14Multiplicationबाएं-से-दाएं… * …
Division… / …
Remainder… % …
13Additionबाएं-से-दाएं… + …
Subtraction… - …
12Bitwise Left Shiftबाएं-से-दाएं… << …
Bitwise Right Shift… >> …
Bitwise Unsigned Right Shift… >>> …
11Less Thanबाएं-से-दाएं… < …
Less Than Or Equal… <= …
Greater Than… > …
Greater Than Or Equal… >= …
in… in …
instanceof… instanceof …
10Equalityबाएं-से-दाएं… == …
Inequality… != …
Strict Equality… === …
Strict Inequality… !== …
9Bitwise ANDबाएं-से-दाएं… & …
8Bitwise XORबाएं-से-दाएं… ^ …
7Bitwise ORबाएं-से-दाएं… | …
6Logical ANDबाएं-से-दाएं… && …
5Logical ORबाएं-से-दाएं… || …
4Conditionalदाएं-से-बाएं… ? … : …
3Assignmentदाएं-से-बाएं… = …
… += …
… -= …
… **= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2yieldदाएं-से-बाएंyield …
yield*yield* …
1Comma / Sequenceबाएं-से-दाएं… , …
diff --git "a/files/hi-in/web/javascript/reference/operators/\340\244\221\340\244\252\340\244\260\340\245\207\340\244\237\340\244\260_\340\244\252\340\245\215\340\244\260\340\244\276\340\244\245\340\244\256\340\244\277\340\244\225\340\244\244\340\244\276/index.html" "b/files/hi-in/web/javascript/reference/operators/\340\244\221\340\244\252\340\244\260\340\245\207\340\244\237\340\244\260_\340\244\252\340\245\215\340\244\260\340\244\276\340\244\245\340\244\256\340\244\277\340\244\225\340\244\244\340\244\276/index.html" deleted file mode 100644 index d21611e054..0000000000 --- "a/files/hi-in/web/javascript/reference/operators/\340\244\221\340\244\252\340\244\260\340\245\207\340\244\237\340\244\260_\340\244\252\340\245\215\340\244\260\340\244\276\340\244\245\340\244\256\340\244\277\340\244\225\340\244\244\340\244\276/index.html" +++ /dev/null @@ -1,312 +0,0 @@ ---- -title: ऑपरेटर प्राथमिकता -slug: Web/JavaScript/Reference/Operators/ऑपरेटर_प्राथमिकता -tags: - - ऑपरेटर - - जावास्क्रिप्ट - - प्राथमिकता -translation_of: Web/JavaScript/Reference/Operators/Operator_Precedence ---- -
{{jsSidebar("ऑपरेटर्स")}}
- -

ऑपरेटर की प्राथमिकता उस तरीके को निर्धारित करती है जिसमें ऑपरेटरों को एक दूसरे के संबंध में पार्स (पद विच्छेदन) किया जाता है। उच्च प्राथमिकता वाले ऑपरेटर कम प्राथमिकता वाले ऑपरेटरों के ओपेरंड (संकार्य) बन जाते हैं।

- -
{{EmbedInteractiveExample("pages/js/expressions-operatorprecedence.html")}}
- - - -

संबद्धता

- -

संबद्धता (एसोसिएटिविटी) उस तरीके को निर्धारित करती है जिसमें समान प्राथमिकता के ऑपरेटरों को पार्स (पद विच्छेदन) किया जाता है। उदाहरण के लिए, एक अभिव्यक्ति पर विचार करें:

- -
a ऑपरेटर b ऑपरेटर c
-
- -

बाएं-संबद्धता (बाएं-से-दाएं) का अर्थ है कि इसे (a ऑपरेटर b) ऑपरेटर c के रूप में संसाधित किया जाता है, जबकि दाएं-संबद्धता (दाएं-से-बाएं) का अर्थ है कि इसे ऑपरेटर (b ऑपरेटर c) के रूप में संसाधित किया जाता है। असाइनमेंट (नियुक्ती) ऑपरेटर दाएं-संबद्धता वाला हैं, इसलिए आप लिख सकते हैं:

- -
a = b = 5;
-
- -

अनुमानित परिणाम के साथ कि a और b को मूल्य 5 प्राप्त होता है। ऐसा इसलिए है क्योंकि असाइनमेंट ऑपरेटर असाइन (नियुक्त) किए गए मान को वापस देता है। सबसे पहले, b को 5 पर सेट किया गया है। फिर a को भी 5 पर सेट किया गया है, b = 5 का वापस किया गया मान, उर्फ असाइनमेंट ऑपरेटर का दायां ऑपरेंड।

- -

तालिका

- -

निम्नलिखित तालिका को उच्चतम (20) से निम्नतम (1) प्राथमिकता से आदेशित (जमाया) गया है।

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
प्राथमिकताऑपरेटर  प्रकारसंबद्धताऑपरेटर
20{{jsxref("Operators/Grouping", "Grouping")}}लागू नहीं( … )
19{{jsxref("Operators/Property_Accessors", "Member Access", "#Dot_notation")}}बाएं-से-दाएं… . …
{{jsxref("Operators/Property_Accessors", "Computed Member Access","#Bracket_notation")}}बाएं-से-दाएं… [ … ]
{{jsxref("Operators/new","new")}} (with argument list)लागू नहींnew … ( … )
Function Callबाएं-से-दाएं… ( … )
18{{jsxref("Operators/new","new")}} (without argument list)दाएं-से-बाएंnew …
17{{jsxref("Operators/Arithmetic_Operators","Postfix Increment","#Increment")}} … ++
{{jsxref("Operators/Arithmetic_Operators","Postfix Decrement","#Decrement")}}… --
16Logical NOTदाएं-से-बाएं! …
Bitwise NOT~ …
Unary Plus+ …
Unary Negation- …
Prefix Increment++ …
Prefix Decrement-- …
typeoftypeof …
voidvoid …
deletedelete …
awaitawait …
15Exponentiationदाएं-से-बाएं… ** …
14Multiplicationबाएं-से-दाएं… * …
Division… / …
Remainder… % …
13Additionबाएं-से-दाएं… + …
Subtraction… - …
12Bitwise Left Shiftबाएं-से-दाएं… << …
Bitwise Right Shift… >> …
Bitwise Unsigned Right Shift… >>> …
11Less Thanबाएं-से-दाएं… < …
Less Than Or Equal… <= …
Greater Than… > …
Greater Than Or Equal… >= …
in… in …
instanceof… instanceof …
10Equalityबाएं-से-दाएं… == …
Inequality… != …
Strict Equality… === …
Strict Inequality… !== …
9Bitwise ANDबाएं-से-दाएं… & …
8Bitwise XORबाएं-से-दाएं… ^ …
7Bitwise ORबाएं-से-दाएं… | …
6Logical ANDबाएं-से-दाएं… && …
5Logical ORबाएं-से-दाएं… || …
4Conditionalदाएं-से-बाएं… ? … : …
3Assignmentदाएं-से-बाएं… = …
… += …
… -= …
… **= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2yieldदाएं-से-बाएंyield …
yield*yield* …
1Comma / Sequenceबाएं-से-दाएं… , …
diff --git a/files/hi-in/web/javascript/typed_arrays/index.html b/files/hi-in/web/javascript/typed_arrays/index.html new file mode 100644 index 0000000000..1585f8b2e6 --- /dev/null +++ b/files/hi-in/web/javascript/typed_arrays/index.html @@ -0,0 +1,180 @@ +--- +title: जावास्क्रिप्ट टाईप्ड सरणियाँ +slug: Web/JavaScript/टाईप्ड_सरणियाँ +tags: + - जावास्क्रिप्ट + - मार्गदर्शिका +translation_of: Web/JavaScript/Typed_arrays +--- +
{{JsSidebar("Advanced")}}
+ +
जावास्क्रिप्ट टाईप्ड सरणियाँ सरणी-जैसी वस्तुऐं हैं जो स्मृति बफ़रों में कच्चे बाइनरी डेटा को पढ़ने और लिखने के लिए एक तंत्र प्रदान करती हैं। जैसा कि आप पहले से जानते होंगे, {{jsxref ("Array")}} वस्तुऐं क्रम में बढ़ती और सिकुड़ती हैं और उनका कोई भी जावास्क्रिप्ट मूल्य हो सकता है। जावास्क्रिप्ट इंजन अनुकूलन करते रहते हैं ताकि ये सरणियाँ तेज़ हों।
+ +

हालाँकि, जैसे-जैसे वेब एप्लिकेशनें अधिक से अधिक शक्तिशाली होते जा रही हैं, वैसे-वैसे ऑडियो और वीडियो फाइलों में हेरफेर करने जैसी सुविधाऐं जोड़ना, WebSockets का उपयोग करते हूए कच्चे डेटा तक पहुंचना, इत्यादि हालातों से यह स्पष्ट होता है कि जावास्क्रिप्ट कोड का कच्चे बाइनरी डेटा को जल्दी और आसानी से हेरफेर कर पाना सहायक होगा। यहीं पर टाईप्ड सरणियाँ काम आती हैं। जावास्क्रिप्ट टाईप्ड सरणी में प्रत्येक वस्तु एक कच्चा बाइनरी मान है जो ८-बिट पूर्णांकों से लेकर ६४-बिट फ्लोटिंग-पॉइंट संख्याओं में से एक समर्थित स्वरूपों में है।

+ +

हालाँकि, टाईप्ड सरणियों को सामान्य सरणियों के साथ भ्रमित नहीं किया जाना है, क्योंकि टाईप्ड सरणी पर {{jsxref ("Array.isArray()")}} कॉल करना false देता है। इसके अलावा, सामान्य सरणियों के लिए उपलब्ध सभी तरीके (जैसे push और pop) टाईप्ड सरणियों द्वारा समर्थित नहीं हैं।

+ +

बफ़र और दृश्य: टाईप्ड सरणी वास्तुकला

+ +

अधिकतम लचीलापन और दक्षता प्राप्त करने के लिए, जावास्क्रिप्ट टाईप्ड सरणियाँ कार्यान्वयन को बफ़रों और दृश्यों में विभाजित करती है। एक बफ़र ({{jsxref ("ArrayBuffer")}} वस्तु द्वारा लागू किया गया) डेटा के एक हिस्सा का प्रतिनिधित्व करने वाली एक वस्तु है; इसका कोई प्रारूप नहीं है और इसकी सामग्री तक पहुँचने के लिए कोई तंत्र नहीं है। एक बफर में निहित स्मृति तक पहुंचने के लिए, आपको एक दृश्य का उपयोग करने की आवश्यकता है। एक दृश्य एक संदर्भ प्रदान करता है - वह है, एक डेटा प्रकार, शुरूआती ऑफ़सेट, और तत्वों की संख्या - जो डेटा को टाईप्ड सरणी में बदल देती है।

+ +

Typed arrays in an ArrayBuffer

+ +

ArrayBuffer

+ +

{{Jsxref ("ArrayBuffer")}} एक डेटा प्रकार है जिसका उपयोग सामान्य, निश्चित-आकार बाइनरी डेटा बफर को दर्शाने के लिए किया जाता है। आप सीधे एक ArrayBuffer की सामग्री में हेरफेर नहीं कर सकते हैं; इसके बजाय, आप टाईप्ड सरणी व्यू या एक {{jsxref ("DataView")}} बनाते हैं, जो किसी विशिष्ट प्रारूप में बफर का प्रतिनिधित्व करता है, और बफर की सामग्री को पढ़ने और लिखने के लिए इसका उपयोग करते हैं।

+ +

टाईप्ड सरणी दृश्य

+ +

टाईप्ड सरणी व्यू में स्व-वर्णनात्मक नाम होते हैं और सभी सामान्य संख्यात्मक प्रकार जैसे Int8, Uint32, Float64 और इसके आगे के दृश्य प्रदान करते हैं। Uint8ClampedArray एक विशेष टाईप्ड सरणी व्यू है। यह ० और २५५ के बीच मानों को जकड़ता है। यह कैनवस डेटा प्रसंस्करण के लिए उपयोगी है, उदाहरण के रूप में।

+ +

{{page("/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray", "TypedArray_objects")}}

+ +

DataView

+ +

{{Jsxref ("DataView")}} एक निम्न-स्तरीय अंतराफलक है जो बफर को मनमाना डेटा पढ़ने और लिखने के लिए एक getter/setter API प्रदान करता है। उदाहरण के लिए, विभिन्न प्रकार के डेटा से निपटने के दौरान यह उपयोगी है। टाईप्ड सरणी व्यू आपके मंच के मूल बाइट-क्रम ({{Glossary ("Endianness")}}) देखें। DataView के साथ आप बाइट-क्रम को नियंत्रित करने में सक्षम हैं। यह डिफ़ॉल्ट रूप से big-endian है और getter/setter विधियों से little-endian पर सेट किया जा सकता है।

+ +

टाईप्ड सरणी का उपयोग करने वाले Web APIs

+ +

ये Web APIs के कुछ उदाहरण हैं जो टाईप्ड सरणियों का उपयोग करते हैं; अन्य और भी हैं, और हर समय अधिक जोड़े जा रहे हैं।

+ +
+
FileReader.prototype.readAsArrayBuffer()
+
The FileReader.prototype.readAsArrayBuffer() विधि निर्दिष्ट Blob या File की सामग्री को पढ़ना शुरू करती है.
+
XMLHttpRequest.prototype.send()
+
XMLHttpRequest वस्तु की send() विधि अब टाईप्ड सरणियों और {{jsxref ("ArrayBuffer")}} वस्तुओं को तर्क के रूप में समर्थन करती है।
+
ImageData.data
+
{{Jsxref ("Uint8ClampedArray")}} RGBA क्रम में डेटा युक्त एक आयामी सरणी का प्रतिनिधित्व करती है, जिसमें और २५५ समावेशी के बीच पूर्णांक मान होते हैं।
+
+ +

उदाहरण

+ +

बफ़रों के साथ दृश्यों का उपयोग करना

+ +

सबसे पहले, हमें १६-बाइटों के निश्चित-आकार की एक बफर बनाने की आवश्यकता होगी:

+ +
let buffer = new ArrayBuffer(16);
+
+ +

इस क्षण पर, हमारे पास स्मृति का एक हिस्सा है जिसकी सभी बाइट्स पहले से ० हैं। हालांकि, बहुत कुछ ऐसा नहीं है जिसे हम इसके साथ कर सकते हैं। हम पुष्टि कर सकते हैं कि यह वास्तव में १६ बाइट लंबा है, और इसके बारे में है:

+ +
if (buffer.byteLength === 16) {
+  console.log("Yes, it's 16 bytes.");
+} else {
+  console.log("Oh no, it's the wrong size!");
+}
+
+ +

इससे पहले कि हम वास्तव में इस बफर के साथ काम कर सकें, हमें एक दृश्य बनाने की आवश्यकता है। आइए एक दृश्य बनाते हैं जो बफर में डेटा को ३२-बिट हस्ताक्षरित पूर्णांक की एक सरणी के रूप में देखता है:

+ +
let int32View = new Int32Array(buffer);
+
+ +

अब हम सामान्य सरणी की तरह ही सरणी में तत्वों तक पहुँच सकते हैं:

+ +
for (let i = 0; i < int32View.length; i++) {
+  int32View[i] = i * 2;
+}
+
+ +

यह ०, २, ४ और ६ मानों के साथ सरणी में ४ तत्वों को भरता है (प्रत्येक ४ बाइट में ४ तत्व कुल १६ बाइट बनाते है)।

+ +

एक ही डेटा पर कई दृश्य

+ +

चीजें वास्तव में दिलचस्प होने लगती हैं जब आप विचार करते हैं कि आप एक ही डेटा पर कई दृश्य बना सकते हैं। उदाहरण के लिए, ऊपर दिया गया कोड, हम इस तरह जारी रख सकते हैं:

+ +
let int16View = new Int16Array(buffer);
+
+for (let i = 0; i < int16View.length; i++) {
+  console.log('Entry ' + i + ': ' + int16View[i]);
+}
+
+ +

यहां हम एक १६-बिट पूर्णांक दृश्य बनाते हैं जो मौजूदा ३२-बिट दृश्य के समान बफर को साझा करता है और हम बफर में सभी मानों को १६-बिट पूर्णांक के रूप में आउटपुट करते हैं। अब हम आउटपुट ०, ०, २, ०, ४, ०, ६, ० प्राप्त करते हैं।

+ +

आप एक कदम आगे जा सकते हैं, यद्यपि। इस पर विचार करो:

+ +
int16View[0] = 32;
+console.log('Entry 0 in the 32-bit array is now ' + int32View[0]);
+
+ +

इससे आउटपुट "Entry 0 in the 32-bit array is now 32" आता है। दूसरे शब्दों में, दो सरणियों को सरलता से एक ही डेटा बफर पर देखा जाता है, इसे विभिन्न स्वरूप समझकर। आप यह किसी भी प्रकार के दृश्य के साथ कर सकते हैं।

+ +

जटिल डेटा संरचनाओं के साथ काम करना

+ +

एकल बफर को विभिन्न प्रकारों के कई दृश्यों के साथ जोड़कर, बफर में अलग-अलग ऑफसेटों पर शुरू करके, आप डेटा वस्तुओं में कई डेटा प्रकारों के साथ खेल सकते हैं। यह आपको, उदाहरण के लिए, WebGL से जटिल डेटा संरचनाओं, डेटा फ़ाइलों, या C संरचनाओं का उपयोग करते समय आपको जो js-ctypes का उपयोग करने की आवश्यकता होती है, उनके साथ खेलना देता है।

+ +

इस C संरचना पर विचार करें:

+ +
struct someStruct {
+  unsigned long id;
+  char username[16];
+  float amountDue;
+};
+ +

आप इस तरह से इस प्रारूप में डेटा युक्त एक बफर का उपयोग कर सकते हैं:

+ +
let buffer = new ArrayBuffer(24);
+
+// ... read the data into the buffer ...
+
+let idView = new Uint32Array(buffer, 0, 1);
+let usernameView = new Uint8Array(buffer, 4, 16);
+let amountDueView = new Float32Array(buffer, 20, 1);
+ +

फिर आप उपयोग कर सकते हैं, उदाहरण के लिए, amountDueView[0] के कारण राशि।

+ +
ध्यान दें: C संरचना में डेटा संरचना संरेखण मंच-निर्भर है। इन पैडिंग मतभेदों के लिए सावधानी और विचार करें।
+ +

सामान्य सरणियों में रूपांतरण

+ +

निश्चित-आकार सरणी को संसाधित करने के बाद, {{jsxref ("Array")}} प्रोटोटाइप से लाभ उठाने के लिए इसे सामान्य सरणी में परिवर्तित करना कभी-कभी उपयोगी होता है। यह {{jsxref ("Array.from")}}, या निम्न कोड का उपयोग करके किया जा सकता है जहाँ Array.from असमर्थित है।

+ +
let typedArray = new Uint8Array([1, 2, 3, 4]),
+    normalArray = Array.prototype.slice.call(typedArray);
+normalArray.length === 4;
+normalArray.constructor === Array;
+
+ +

विशेष विवरण

+ + + + + + + + + + + + + + + + + + + + + + + + +
विशेष विवरणस्थितिटिप्पणी
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}ईसीएमएस्क्रिप्ट २०१५ द्वारा अभिहित।
{{SpecName('ES2015', '#sec-typedarray-objects', 'TypedArray Objects')}}{{Spec2('ES2015')}}ECMA मानक में प्रारंभिक परिभाषा।
{{SpecName('ESDraft', '#sec-typedarray-objects', 'TypedArray Objects')}}{{Spec2('ESDraft')}}
+ +

ब्राउज़र संगतता

+ + + +

{{Compat("javascript.builtins.Int8Array")}}

+ +

यह भी देखें

+ + diff --git "a/files/hi-in/web/javascript/\340\244\237\340\244\276\340\244\210\340\244\252\340\245\215\340\244\241_\340\244\270\340\244\260\340\244\243\340\244\277\340\244\257\340\244\276\340\244\201/index.html" "b/files/hi-in/web/javascript/\340\244\237\340\244\276\340\244\210\340\244\252\340\245\215\340\244\241_\340\244\270\340\244\260\340\244\243\340\244\277\340\244\257\340\244\276\340\244\201/index.html" deleted file mode 100644 index 1585f8b2e6..0000000000 --- "a/files/hi-in/web/javascript/\340\244\237\340\244\276\340\244\210\340\244\252\340\245\215\340\244\241_\340\244\270\340\244\260\340\244\243\340\244\277\340\244\257\340\244\276\340\244\201/index.html" +++ /dev/null @@ -1,180 +0,0 @@ ---- -title: जावास्क्रिप्ट टाईप्ड सरणियाँ -slug: Web/JavaScript/टाईप्ड_सरणियाँ -tags: - - जावास्क्रिप्ट - - मार्गदर्शिका -translation_of: Web/JavaScript/Typed_arrays ---- -
{{JsSidebar("Advanced")}}
- -
जावास्क्रिप्ट टाईप्ड सरणियाँ सरणी-जैसी वस्तुऐं हैं जो स्मृति बफ़रों में कच्चे बाइनरी डेटा को पढ़ने और लिखने के लिए एक तंत्र प्रदान करती हैं। जैसा कि आप पहले से जानते होंगे, {{jsxref ("Array")}} वस्तुऐं क्रम में बढ़ती और सिकुड़ती हैं और उनका कोई भी जावास्क्रिप्ट मूल्य हो सकता है। जावास्क्रिप्ट इंजन अनुकूलन करते रहते हैं ताकि ये सरणियाँ तेज़ हों।
- -

हालाँकि, जैसे-जैसे वेब एप्लिकेशनें अधिक से अधिक शक्तिशाली होते जा रही हैं, वैसे-वैसे ऑडियो और वीडियो फाइलों में हेरफेर करने जैसी सुविधाऐं जोड़ना, WebSockets का उपयोग करते हूए कच्चे डेटा तक पहुंचना, इत्यादि हालातों से यह स्पष्ट होता है कि जावास्क्रिप्ट कोड का कच्चे बाइनरी डेटा को जल्दी और आसानी से हेरफेर कर पाना सहायक होगा। यहीं पर टाईप्ड सरणियाँ काम आती हैं। जावास्क्रिप्ट टाईप्ड सरणी में प्रत्येक वस्तु एक कच्चा बाइनरी मान है जो ८-बिट पूर्णांकों से लेकर ६४-बिट फ्लोटिंग-पॉइंट संख्याओं में से एक समर्थित स्वरूपों में है।

- -

हालाँकि, टाईप्ड सरणियों को सामान्य सरणियों के साथ भ्रमित नहीं किया जाना है, क्योंकि टाईप्ड सरणी पर {{jsxref ("Array.isArray()")}} कॉल करना false देता है। इसके अलावा, सामान्य सरणियों के लिए उपलब्ध सभी तरीके (जैसे push और pop) टाईप्ड सरणियों द्वारा समर्थित नहीं हैं।

- -

बफ़र और दृश्य: टाईप्ड सरणी वास्तुकला

- -

अधिकतम लचीलापन और दक्षता प्राप्त करने के लिए, जावास्क्रिप्ट टाईप्ड सरणियाँ कार्यान्वयन को बफ़रों और दृश्यों में विभाजित करती है। एक बफ़र ({{jsxref ("ArrayBuffer")}} वस्तु द्वारा लागू किया गया) डेटा के एक हिस्सा का प्रतिनिधित्व करने वाली एक वस्तु है; इसका कोई प्रारूप नहीं है और इसकी सामग्री तक पहुँचने के लिए कोई तंत्र नहीं है। एक बफर में निहित स्मृति तक पहुंचने के लिए, आपको एक दृश्य का उपयोग करने की आवश्यकता है। एक दृश्य एक संदर्भ प्रदान करता है - वह है, एक डेटा प्रकार, शुरूआती ऑफ़सेट, और तत्वों की संख्या - जो डेटा को टाईप्ड सरणी में बदल देती है।

- -

Typed arrays in an ArrayBuffer

- -

ArrayBuffer

- -

{{Jsxref ("ArrayBuffer")}} एक डेटा प्रकार है जिसका उपयोग सामान्य, निश्चित-आकार बाइनरी डेटा बफर को दर्शाने के लिए किया जाता है। आप सीधे एक ArrayBuffer की सामग्री में हेरफेर नहीं कर सकते हैं; इसके बजाय, आप टाईप्ड सरणी व्यू या एक {{jsxref ("DataView")}} बनाते हैं, जो किसी विशिष्ट प्रारूप में बफर का प्रतिनिधित्व करता है, और बफर की सामग्री को पढ़ने और लिखने के लिए इसका उपयोग करते हैं।

- -

टाईप्ड सरणी दृश्य

- -

टाईप्ड सरणी व्यू में स्व-वर्णनात्मक नाम होते हैं और सभी सामान्य संख्यात्मक प्रकार जैसे Int8, Uint32, Float64 और इसके आगे के दृश्य प्रदान करते हैं। Uint8ClampedArray एक विशेष टाईप्ड सरणी व्यू है। यह ० और २५५ के बीच मानों को जकड़ता है। यह कैनवस डेटा प्रसंस्करण के लिए उपयोगी है, उदाहरण के रूप में।

- -

{{page("/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray", "TypedArray_objects")}}

- -

DataView

- -

{{Jsxref ("DataView")}} एक निम्न-स्तरीय अंतराफलक है जो बफर को मनमाना डेटा पढ़ने और लिखने के लिए एक getter/setter API प्रदान करता है। उदाहरण के लिए, विभिन्न प्रकार के डेटा से निपटने के दौरान यह उपयोगी है। टाईप्ड सरणी व्यू आपके मंच के मूल बाइट-क्रम ({{Glossary ("Endianness")}}) देखें। DataView के साथ आप बाइट-क्रम को नियंत्रित करने में सक्षम हैं। यह डिफ़ॉल्ट रूप से big-endian है और getter/setter विधियों से little-endian पर सेट किया जा सकता है।

- -

टाईप्ड सरणी का उपयोग करने वाले Web APIs

- -

ये Web APIs के कुछ उदाहरण हैं जो टाईप्ड सरणियों का उपयोग करते हैं; अन्य और भी हैं, और हर समय अधिक जोड़े जा रहे हैं।

- -
-
FileReader.prototype.readAsArrayBuffer()
-
The FileReader.prototype.readAsArrayBuffer() विधि निर्दिष्ट Blob या File की सामग्री को पढ़ना शुरू करती है.
-
XMLHttpRequest.prototype.send()
-
XMLHttpRequest वस्तु की send() विधि अब टाईप्ड सरणियों और {{jsxref ("ArrayBuffer")}} वस्तुओं को तर्क के रूप में समर्थन करती है।
-
ImageData.data
-
{{Jsxref ("Uint8ClampedArray")}} RGBA क्रम में डेटा युक्त एक आयामी सरणी का प्रतिनिधित्व करती है, जिसमें और २५५ समावेशी के बीच पूर्णांक मान होते हैं।
-
- -

उदाहरण

- -

बफ़रों के साथ दृश्यों का उपयोग करना

- -

सबसे पहले, हमें १६-बाइटों के निश्चित-आकार की एक बफर बनाने की आवश्यकता होगी:

- -
let buffer = new ArrayBuffer(16);
-
- -

इस क्षण पर, हमारे पास स्मृति का एक हिस्सा है जिसकी सभी बाइट्स पहले से ० हैं। हालांकि, बहुत कुछ ऐसा नहीं है जिसे हम इसके साथ कर सकते हैं। हम पुष्टि कर सकते हैं कि यह वास्तव में १६ बाइट लंबा है, और इसके बारे में है:

- -
if (buffer.byteLength === 16) {
-  console.log("Yes, it's 16 bytes.");
-} else {
-  console.log("Oh no, it's the wrong size!");
-}
-
- -

इससे पहले कि हम वास्तव में इस बफर के साथ काम कर सकें, हमें एक दृश्य बनाने की आवश्यकता है। आइए एक दृश्य बनाते हैं जो बफर में डेटा को ३२-बिट हस्ताक्षरित पूर्णांक की एक सरणी के रूप में देखता है:

- -
let int32View = new Int32Array(buffer);
-
- -

अब हम सामान्य सरणी की तरह ही सरणी में तत्वों तक पहुँच सकते हैं:

- -
for (let i = 0; i < int32View.length; i++) {
-  int32View[i] = i * 2;
-}
-
- -

यह ०, २, ४ और ६ मानों के साथ सरणी में ४ तत्वों को भरता है (प्रत्येक ४ बाइट में ४ तत्व कुल १६ बाइट बनाते है)।

- -

एक ही डेटा पर कई दृश्य

- -

चीजें वास्तव में दिलचस्प होने लगती हैं जब आप विचार करते हैं कि आप एक ही डेटा पर कई दृश्य बना सकते हैं। उदाहरण के लिए, ऊपर दिया गया कोड, हम इस तरह जारी रख सकते हैं:

- -
let int16View = new Int16Array(buffer);
-
-for (let i = 0; i < int16View.length; i++) {
-  console.log('Entry ' + i + ': ' + int16View[i]);
-}
-
- -

यहां हम एक १६-बिट पूर्णांक दृश्य बनाते हैं जो मौजूदा ३२-बिट दृश्य के समान बफर को साझा करता है और हम बफर में सभी मानों को १६-बिट पूर्णांक के रूप में आउटपुट करते हैं। अब हम आउटपुट ०, ०, २, ०, ४, ०, ६, ० प्राप्त करते हैं।

- -

आप एक कदम आगे जा सकते हैं, यद्यपि। इस पर विचार करो:

- -
int16View[0] = 32;
-console.log('Entry 0 in the 32-bit array is now ' + int32View[0]);
-
- -

इससे आउटपुट "Entry 0 in the 32-bit array is now 32" आता है। दूसरे शब्दों में, दो सरणियों को सरलता से एक ही डेटा बफर पर देखा जाता है, इसे विभिन्न स्वरूप समझकर। आप यह किसी भी प्रकार के दृश्य के साथ कर सकते हैं।

- -

जटिल डेटा संरचनाओं के साथ काम करना

- -

एकल बफर को विभिन्न प्रकारों के कई दृश्यों के साथ जोड़कर, बफर में अलग-अलग ऑफसेटों पर शुरू करके, आप डेटा वस्तुओं में कई डेटा प्रकारों के साथ खेल सकते हैं। यह आपको, उदाहरण के लिए, WebGL से जटिल डेटा संरचनाओं, डेटा फ़ाइलों, या C संरचनाओं का उपयोग करते समय आपको जो js-ctypes का उपयोग करने की आवश्यकता होती है, उनके साथ खेलना देता है।

- -

इस C संरचना पर विचार करें:

- -
struct someStruct {
-  unsigned long id;
-  char username[16];
-  float amountDue;
-};
- -

आप इस तरह से इस प्रारूप में डेटा युक्त एक बफर का उपयोग कर सकते हैं:

- -
let buffer = new ArrayBuffer(24);
-
-// ... read the data into the buffer ...
-
-let idView = new Uint32Array(buffer, 0, 1);
-let usernameView = new Uint8Array(buffer, 4, 16);
-let amountDueView = new Float32Array(buffer, 20, 1);
- -

फिर आप उपयोग कर सकते हैं, उदाहरण के लिए, amountDueView[0] के कारण राशि।

- -
ध्यान दें: C संरचना में डेटा संरचना संरेखण मंच-निर्भर है। इन पैडिंग मतभेदों के लिए सावधानी और विचार करें।
- -

सामान्य सरणियों में रूपांतरण

- -

निश्चित-आकार सरणी को संसाधित करने के बाद, {{jsxref ("Array")}} प्रोटोटाइप से लाभ उठाने के लिए इसे सामान्य सरणी में परिवर्तित करना कभी-कभी उपयोगी होता है। यह {{jsxref ("Array.from")}}, या निम्न कोड का उपयोग करके किया जा सकता है जहाँ Array.from असमर्थित है।

- -
let typedArray = new Uint8Array([1, 2, 3, 4]),
-    normalArray = Array.prototype.slice.call(typedArray);
-normalArray.length === 4;
-normalArray.constructor === Array;
-
- -

विशेष विवरण

- - - - - - - - - - - - - - - - - - - - - - - - -
विशेष विवरणस्थितिटिप्पणी
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}ईसीएमएस्क्रिप्ट २०१५ द्वारा अभिहित।
{{SpecName('ES2015', '#sec-typedarray-objects', 'TypedArray Objects')}}{{Spec2('ES2015')}}ECMA मानक में प्रारंभिक परिभाषा।
{{SpecName('ESDraft', '#sec-typedarray-objects', 'TypedArray Objects')}}{{Spec2('ESDraft')}}
- -

ब्राउज़र संगतता

- - - -

{{Compat("javascript.builtins.Int8Array")}}

- -

यह भी देखें

- - -- cgit v1.2.3-54-g00ecf