From 1109132f09d75da9a28b649c7677bb6ce07c40c0 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:41:45 -0500 Subject: initial commit --- files/hi-in/web/javascript/index.html | 100 +++++++ files/hi-in/web/javascript/reference/index.html | 51 ++++ .../web/javascript/reference/operators/index.html | 310 ++++++++++++++++++++ .../index.html" | 312 +++++++++++++++++++++ .../index.html" | 180 ++++++++++++ 5 files changed, 953 insertions(+) create mode 100644 files/hi-in/web/javascript/index.html create mode 100644 files/hi-in/web/javascript/reference/index.html create mode 100644 files/hi-in/web/javascript/reference/operators/index.html create 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/\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/index.html b/files/hi-in/web/javascript/index.html new file mode 100644 index 0000000000..5334101a9a --- /dev/null +++ b/files/hi-in/web/javascript/index.html @@ -0,0 +1,100 @@ +--- +title: JavaScript +slug: Web/JavaScript +translation_of: Web/JavaScript +--- +
{{JsSidebar()}}
+ +
+

JavaScript (जावास्क्रिप्ट ) एक हलकी, ऑब्जेक्ट ओरिएंटेड स्क्रिप्टिंग भाषा है। यह ज्यादातर वेब पेज़ेस के लिए इस्तेमाल की जाती है, पर ब्राउज़र के आलावा दूसरे एनवायरनमेंट जैसे Node.js, Apache CouchDB और Adobe Acrobat में भी इस्तेमाल कर सकते हैं। 

+
+ +

साइट का यह भाग सिर्फ जावास्क्रिप्ट के लिए ही है। वेब पेज़ेस से सम्बंधित जानकारी के लिए Web API और DOM देखें। 

+ +

जावास्क्रिप्ट का वर्तमान वर्ज़न ECMAScript 6 या ES 6 कहलाता है। इसे प्रायः ECMAScript 2015 भी कहते हैं।

+ +

Javascript  और Java दो अलग प्रोग्रामिंग भाषाएं हैं। 

+ +
+
+

Tutorials

+ +

Guide और Tutorials के साथ जावास्क्रिप्ट प्रोग्रामिंग सीखें 

+ +

Introductory

+ +
+
JavaScript Guide
+
आप जावास्क्रिप्ट में  नए हैं तो, इस गाइड की भाषा के माध्यम से चलना होगा।
+
JavaScript technologies overview
+
आप जावास्क्रिप्ट के लिए नए हैं, इस गाइड की भाषा के माध्यम से चलना होगा।
+
Introduction to Object Oriented JavaScript
+
जावास्क्रिप्ट में वस्तु उन्मुख प्रोग्रामिंग की अवधारणाओं का परिचय
+
+ +

Intermediate

+ +
+
A re-introduction to JavaScript
+
 अवलोकन-- उनके लिये जो पहले से ही  JavaScript जानते है |
+
+ +
+
JavaScript data structures
+
JavaScript  में उपलब्ध डाटा संरचनााएं का अवलोकन
+
Equality comparisons and when to use them
+
JavaScript तीन अलग अलग मूल्य तुलना आपरेशनों प्रदान करता है: strict equality using === and loose equality using ==.
+
+ +

Advanced

+ +
+
Inheritance and the prototype chain
+
व्यापक रूप से गलत समझा और कम अनुमान प्रोटोटाइप आधारित विरासत की व्याख्या
+
Strict mode
+
JavaScript का एक प्रतिबंधित संस्करण।
+
JavaScript typed arrays
+
JavaScript एक arrays टाइप का है और raw binary data एक्सेस करने के लिये मैकेनिज्म प्रदान करता है |
+
Memory Management
+
JavaScript में मेमोरी लाइफ साइकिल और गार्बेज  संग्रहण
+
+
+ +
+

Reference

+ +

पूरा JS reference डॉक्यूमेंटेशन ब्राउज करे|

+ +
+
Standard objects
+
गेट टू know स्टैण्डर्ड built in objectsArray, Boolean, Date, Error, Function, JSON, Math, Number, Object, RegExp, StringMap, Set, WeakMap, WeakSet, and others.
+
Expressions & operators
+
Learn more about the behavior of JavaScript's operators instanceof, typeof, new, this, and more.
+
Statements & declarations
+
Learn how do-while, for-in, for-of, try-catch, let, var, const, if-else, switch, and more JavaScript statements and keywords work.
+
Functions
+
Learn how to work with JS functions to develop your applications .
+
+ +

Tools & resources

+ +

Helpful tools while writing and debugging your JavaScript code.

+ +
+
Firefox Developer Tools
+
Scratchpad, Web Console, JavaScript Profiler, Debugger, and more.
+
Firebug
+
Edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.
+
JavaScript Shells
+
A JavaScript shell allows you to quickly test snippets of JavaScript code.
+
TogetherJS
+
+

Collaboration made easy.

+
+
Stack Overflow
+
Stack Overflow questions tagged with "JavaScript".
+
JavaScript versions and release notes
+
Browse JavaScript's feature history and implementation status.
+
+
+
diff --git a/files/hi-in/web/javascript/reference/index.html b/files/hi-in/web/javascript/reference/index.html new file mode 100644 index 0000000000..4205970b93 --- /dev/null +++ b/files/hi-in/web/javascript/reference/index.html @@ -0,0 +1,51 @@ +--- +title: JavaScript reference +slug: Web/JavaScript/Reference +tags: + - JavaScript + - NeedsTranslation + - TopicStub + - 'l10n:priority' +translation_of: Web/JavaScript/Reference +--- +
{{JsSidebar}}
+ +

This part of the JavaScript section on MDN serves as a repository of facts about the JavaScript language. Read more about this reference.

+ +

Global Objects

+ +

This chapter documents all the JavaScript standard built-in objects, along with their methods and properties.

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects', 'Standard_objects_by_category')}}
+ +

Statements

+ +

This chapter documents all the JavaScript statements and declarations.

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Statements', 'Statements_and_declarations_by_category')}}
+ +

Expressions and operators

+ +

This chapter documents all the JavaScript expressions and operators.

+ +
{{page('/en-US/docs/Web/JavaScript/Reference/Operators', 'Expressions_and_operators_by_category')}}
+ +

Functions

+ +

This chapter documents how to work with JavaScript functions to develop your applications.

+ + + +

Additional reference pages

+ + diff --git a/files/hi-in/web/javascript/reference/operators/index.html b/files/hi-in/web/javascript/reference/operators/index.html new file mode 100644 index 0000000000..f3f305aefe --- /dev/null +++ b/files/hi-in/web/javascript/reference/operators/index.html @@ -0,0 +1,310 @@ +--- +title: Expressions and operators +slug: Web/JavaScript/Reference/Operators +tags: + - JavaScript + - NeedsTranslation + - Operators + - Overview + - Reference + - TopicStub +translation_of: Web/JavaScript/Reference/Operators +--- +
{{jsSidebar("Operators")}}
+ +

This chapter documents all the JavaScript language operators, expressions and keywords.

+ +

Expressions and operators by category

+ +

For an alphabetical listing see the sidebar on the left.

+ +

Primary expressions

+ +

Basic keywords and general expressions in JavaScript.

+ +
+
{{jsxref("Operators/this", "this")}}
+
The this keyword refers to a special property of an execution context.
+
{{jsxref("Operators/function", "function")}}
+
The function keyword defines a function expression.
+
{{jsxref("Operators/class", "class")}}
+
The class keyword defines a class expression.
+
{{jsxref("Operators/function*", "function*")}}
+
The function* keyword defines a generator function expression.
+
{{jsxref("Operators/yield", "yield")}}
+
Pause and resume a generator function.
+
{{jsxref("Operators/yield*", "yield*")}}
+
Delegate to another generator function or iterable object.
+
{{jsxref("Operators/async_function", "async function")}}
+
The async function defines an async function expression.
+
{{jsxref("Operators/await", "await")}}
+
Pause and resume an async function and wait for the promise's resolution/rejection.
+
{{jsxref("Global_Objects/Array", "[]")}}
+
Array initializer/literal syntax.
+
{{jsxref("Operators/Object_initializer", "{}")}}
+
Object initializer/literal syntax.
+
{{jsxref("Global_Objects/RegExp", "/ab+c/i")}}
+
Regular expression literal syntax.
+
{{jsxref("Operators/Grouping", "( )")}}
+
Grouping operator.
+
+ +

Left-hand-side expressions

+ +

Left values are the destination of an assignment.

+ +
+
{{jsxref("Operators/Property_accessors", "Property accessors", "", 1)}}
+
Member operators provide access to a property or method of an object
+ (object.property and object["property"]).
+
{{jsxref("Operators/new", "new")}}
+
The new operator creates an instance of a constructor.
+
new.target
+
In constructors, new.target refers to the constructor that was invoked by {{jsxref("Operators/new", "new")}}.
+
{{jsxref("Operators/super", "super")}}
+
The super keyword calls the parent constructor.
+
{{jsxref("Operators/Spread_syntax", "...obj")}}
+
Spread syntax allows an expression to be expanded in places where multiple arguments (for function calls) or multiple elements (for array literals) are expected.
+
+ +

Increment and decrement

+ +

Postfix/prefix increment and postfix/prefix decrement operators.

+ +
+
{{jsxref("Operators/Arithmetic_Operators", "A++", "#Increment")}}
+
Postfix increment operator.
+
{{jsxref("Operators/Arithmetic_Operators", "A--", "#Decrement")}}
+
Postfix decrement operator.
+
{{jsxref("Operators/Arithmetic_Operators", "++A", "#Increment")}}
+
Prefix increment operator.
+
{{jsxref("Operators/Arithmetic_Operators", "--A", "#Decrement")}}
+
Prefix decrement operator.
+
+ +

Unary operators

+ +

A unary operation is operation with only one operand.

+ +
+
{{jsxref("Operators/delete", "delete")}}
+
The delete operator deletes a property from an object.
+
{{jsxref("Operators/void", "void")}}
+
The void operator discards an expression's return value.
+
{{jsxref("Operators/typeof", "typeof")}}
+
The typeof operator determines the type of a given object.
+
{{jsxref("Operators/Arithmetic_Operators", "+", "#Unary_plus")}}
+
The unary plus operator converts its operand to Number type.
+
{{jsxref("Operators/Arithmetic_Operators", "-", "#Unary_negation")}}
+
The unary negation operator converts its operand to Number type and then negates it.
+
{{jsxref("Operators/Bitwise_Operators", "~", "#Bitwise_NOT")}}
+
Bitwise NOT operator.
+
{{jsxref("Operators/Logical_Operators", "!", "#Logical_NOT")}}
+
Logical NOT operator.
+
+ +

Arithmetic operators

+ +

Arithmetic operators take numerical values (either literals or variables) as their operands and return a single numerical value.

+ +
+
{{jsxref("Operators/Arithmetic_Operators", "+", "#Addition")}}
+
Addition operator.
+
{{jsxref("Operators/Arithmetic_Operators", "-", "#Subtraction")}}
+
Subtraction operator.
+
{{jsxref("Operators/Arithmetic_Operators", "/", "#Division")}}
+
Division operator.
+
{{jsxref("Operators/Arithmetic_Operators", "*", "#Multiplication")}}
+
Multiplication operator.
+
{{jsxref("Operators/Arithmetic_Operators", "%", "#Remainder")}}
+
Remainder operator.
+
+ +
+
{{jsxref("Operators/Arithmetic_Operators", "**", "#Exponentiation")}}
+
Exponentiation operator.
+
+ +

Relational operators

+ +

A comparison operator compares its operands and returns a Boolean value based on whether the comparison is true.

+ +
+
{{jsxref("Operators/in", "in")}}
+
The in operator determines whether an object has a given property.
+
{{jsxref("Operators/instanceof", "instanceof")}}
+
The instanceof operator determines whether an object is an instance of another object.
+
{{jsxref("Operators/Comparison_Operators", "<", "#Less_than_operator")}}
+
Less than operator.
+
{{jsxref("Operators/Comparison_Operators", ">", "#Greater_than_operator")}}
+
Greater than operator.
+
{{jsxref("Operators/Comparison_Operators", "<=", "#Less_than_or_equal_operator")}}
+
Less than or equal operator.
+
{{jsxref("Operators/Comparison_Operators", ">=", "#Greater_than_or_equal_operator")}}
+
Greater than or equal operator.
+
+ +
+

Note: => is not an operator, but the notation for Arrow functions.

+
+ +

Equality operators

+ +

The result of evaluating an equality operator is always of type Boolean based on whether the comparison is true.

+ +
+
{{jsxref("Operators/Comparison_Operators", "==", "#Equality")}}
+
Equality operator.
+
{{jsxref("Operators/Comparison_Operators", "!=", "#Inequality")}}
+
Inequality operator.
+
{{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}
+
Identity operator.
+
{{jsxref("Operators/Comparison_Operators", "!==", "#Nonidentity")}}
+
Nonidentity operator.
+
+ +

Bitwise shift operators

+ +

Operations to shift all bits of the operand.

+ +
+
{{jsxref("Operators/Bitwise_Operators", "<<", "#Left_shift")}}
+
Bitwise left shift operator.
+
{{jsxref("Operators/Bitwise_Operators", ">>", "#Right_shift")}}
+
Bitwise right shift operator.
+
{{jsxref("Operators/Bitwise_Operators", ">>>", "#Unsigned_right_shift")}}
+
Bitwise unsigned right shift operator.
+
+ +

Binary bitwise operators

+ +

Bitwise operators treat their operands as a set of 32 bits (zeros and ones) and return standard JavaScript numerical values.

+ +
+
{{jsxref("Operators/Bitwise_Operators", "&", "#Bitwise_AND")}}
+
Bitwise AND.
+
{{jsxref("Operators/Bitwise_Operators", "|", "#Bitwise_OR")}}
+
Bitwise OR.
+
{{jsxref("Operators/Bitwise_Operators", "^", "#Bitwise_XOR")}}
+
Bitwise XOR.
+
+ +

Binary logical operators

+ +

Logical operators are typically used with boolean (logical) values, and when they are, they return a boolean value.

+ +
+
{{jsxref("Operators/Logical_Operators", "&&", "#Logical_AND")}}
+
Logical AND.
+
{{jsxref("Operators/Logical_Operators", "||", "#Logical_OR")}}
+
Logical OR.
+
+ +

Conditional (ternary) operator

+ +
+
{{jsxref("Operators/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}
+
+

The conditional operator returns one of two values based on the logical value of the condition.

+
+
+ +

Assignment operators

+ +

An assignment operator assigns a value to its left operand based on the value of its right operand.

+ +
+
{{jsxref("Operators/Assignment_Operators", "=", "#Assignment")}}
+
Assignment operator.
+
{{jsxref("Operators/Assignment_Operators", "*=", "#Multiplication_assignment")}}
+
Multiplication assignment.
+
{{jsxref("Operators/Assignment_Operators", "/=", "#Division_assignment")}}
+
Division assignment.
+
{{jsxref("Operators/Assignment_Operators", "%=", "#Remainder_assignment")}}
+
Remainder assignment.
+
{{jsxref("Operators/Assignment_Operators", "+=", "#Addition_assignment")}}
+
Addition assignment.
+
{{jsxref("Operators/Assignment_Operators", "-=", "#Subtraction_assignment")}}
+
Subtraction assignment
+
{{jsxref("Operators/Assignment_Operators", "<<=", "#Left_shift_assignment")}}
+
Left shift assignment.
+
{{jsxref("Operators/Assignment_Operators", ">>=", "#Right_shift_assignment")}}
+
Right shift assignment.
+
{{jsxref("Operators/Assignment_Operators", ">>>=", "#Unsigned_right_shift_assignment")}}
+
Unsigned right shift assignment.
+
{{jsxref("Operators/Assignment_Operators", "&=", "#Bitwise_AND_assignment")}}
+
Bitwise AND assignment.
+
{{jsxref("Operators/Assignment_Operators", "^=", "#Bitwise_XOR_assignment")}}
+
Bitwise XOR assignment.
+
{{jsxref("Operators/Assignment_Operators", "|=", "#Bitwise_OR_assignment")}}
+
Bitwise OR assignment.
+
{{jsxref("Operators/Destructuring_assignment", "[a, b] = [1, 2]")}}
+ {{jsxref("Operators/Destructuring_assignment", "{a, b} = {a:1, b:2}")}}
+
+

Destructuring assignment allows you to assign the properties of an array or object to variables using syntax that looks similar to array or object literals.

+
+
+ +

Comma operator

+ +
+
{{jsxref("Operators/Comma_Operator", ",")}}
+
The comma operator allows multiple expressions to be evaluated in a single statement and returns the result of the last expression.
+
+ +

Non-standard features {{non-standard_inline}}

+ +
+
{{jsxref("Operators/Expression_closures", "Expression closures", "", 1)}} {{non-standard_inline}}{{obsolete_inline(60)}}
+
The expression closure syntax is a shorthand for writing simple function.
+
{{jsxref("Operators/Legacy_generator_function", "Legacy generator function", "", 1)}} {{non-standard_inline}}{{obsolete_inline(58)}}
+
The function keyword can be used to define a legacy generator function inside an expression. To make the function a legacy generator, the function body should contains at least one {{jsxref("Operators/yield", "yield")}} expression.
+
{{jsxref("Operators/Array_comprehensions", "[for (x of y) x]")}} {{non-standard_inline}}{{obsolete_inline(58)}}
+
Array comprehensions.
+
{{jsxref("Operators/Generator_comprehensions", "(for (x of y) y)")}} {{non-standard_inline}}{{obsolete_inline(58)}}
+
Generator comprehensions.
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES1', '#sec-11', 'Expressions')}}{{Spec2('ES1')}}Initial definition
{{SpecName('ES5.1', '#sec-11', 'Expressions')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}{{Spec2('ES6')}}New: Spread syntax, rest syntax, destructuring assignment, super keyword.
{{SpecName('ESDraft', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ + + +

{{Compat("javascript.operators")}}

+ +

See also

+ + 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" new file mode 100644 index 0000000000..d21611e054 --- /dev/null +++ "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" @@ -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/\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" new file mode 100644 index 0000000000..1585f8b2e6 --- /dev/null +++ "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" @@ -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")}}

+ +

यह भी देखें

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