खोज…
वाक्य - विन्यास
- शून्य अभिव्यक्ति; // अभिव्यक्ति का मूल्यांकन करता है और रिटर्न वैल्यू वापस करता है
- + अभिव्यक्ति; // अभिव्यक्ति को संख्या में बदलने का प्रयास
- ऑब्जेक्ट हटाएं; // ऑब्जेक्ट की संपत्ति हटाएं
- ऑब्जेक्ट हटाएं ["संपत्ति"]; // ऑब्जेक्ट की संपत्ति हटाएं
- टाइपोफ़ ऑपरेंड; // ऑपरेंड का प्रकार लौटाता है
- ~ अभिव्यक्ति; // प्रत्येक बिट अभिव्यक्ति पर ऑपरेशन नहीं करें
- ! अभिव्यक्ति; // अभिव्यक्ति पर तार्किक उपेक्षा करें
- -expression; // संख्या में रूपांतरण का प्रयास करने के बाद नेगेट अभिव्यक्ति
यूनीरी प्लस ऑपरेटर (+)
यूनीरी प्लस ( +
) इसके ऑपरेंड से पहले और इसके ऑपरेंड का मूल्यांकन करता है। यदि यह पहले से ही नहीं है, तो यह ऑपरेंड को एक संख्या में बदलने का प्रयास करता है।
वाक्य - विन्यास:
+expression
यह दिखाता है:
- एक
Number
।
विवरण
यूनरी प्लस ( +
) ऑपरेटर किसी संख्या में किसी चीज़ को परिवर्तित करने का सबसे तेज़ (और पसंदीदा) तरीका है।
यह परिवर्तित कर सकते हैं:
- पूर्णांक (दशमलव या हेक्साडेसिमल) और फ्लोट्स के स्ट्रिंग निरूपण।
- बूलियन:
true
,false
। -
null
वे मान जिन्हें परिवर्तित नहीं किया जा सकता वे NaN
मूल्यांकन करेंगे।
उदाहरण:
+42 // 42
+"42" // 42
+true // 1
+false // 0
+null // 0
+undefined // NaN
+NaN // NaN
+"foo" // NaN
+{} // NaN
+function(){} // NaN
ध्यान दें कि किसी सरणी को बदलने का प्रयास करने पर अप्रत्याशित रिटर्न मान हो सकते हैं।
पृष्ठभूमि में, सरणियों को पहले उनके स्ट्रिंग अभ्यावेदन में परिवर्तित किया जाता है:
[].toString() === '';
[1].toString() === '1';
[1, 2].toString() === '1,2';
ऑपरेटर फिर उन तारों को संख्याओं में बदलने का प्रयास करता है:
+[] // 0 ( === +'' )
+[1] // 1 ( === +'1' )
+[1, 2] // NaN ( === +'1,2' )
हटाने वाला
delete
ऑपरेटर एक ऑब्जेक्ट से एक संपत्ति को हटा देता है।
वाक्य - विन्यास:
delete object.property
delete object['property']
यह दिखाता है:
यदि विलोपन सफल है, या संपत्ति मौजूद नहीं थी:
-
true
यदि हटाई जाने वाली संपत्ति स्वयं की गैर-विन्यास योग्य संपत्ति है (नष्ट नहीं की जा सकती):
- गैर-सख्त मोड में
false
। - सख्त मोड में त्रुटि फेंकता है
विवरण
delete
ऑपरेटर सीधे मेमोरी को फ्री नहीं करता है। यह अप्रत्यक्ष रूप से मुफ्त मेमोरी हो सकता है यदि ऑपरेशन का मतलब संपत्ति के सभी संदर्भ चले गए हैं।
ऑब्जेक्ट के गुणों पर कार्य delete
। यदि समान नाम वाली कोई संपत्ति ऑब्जेक्ट की प्रोटोटाइप श्रृंखला पर मौजूद है, तो संपत्ति को प्रोटोटाइप से विरासत में मिली होगी।
delete
चर या फ़ंक्शन नामों पर काम नहीं करता है।
उदाहरण:
// Deleting a property
foo = 1; // a global variable is a property of `window`: `window.foo`
delete foo; // true
console.log(foo); // Uncaught ReferenceError: foo is not defined
// Deleting a variable
var foo = 1;
delete foo; // false
console.log(foo); // 1 (Not deleted)
// Deleting a function
function foo(){ };
delete foo; // false
console.log(foo); // function foo(){ } (Not deleted)
// Deleting a property
var foo = { bar: "42" };
delete foo.bar; // true
console.log(foo); // Object { } (Deleted bar)
// Deleting a property that does not exist
var foo = { };
delete foo.bar; // true
console.log(foo); // Object { } (No errors, nothing deleted)
// Deleting a non-configurable property of a predefined object
delete Math.PI; // false ()
console.log(Math.PI); // 3.141592653589793 (Not deleted)
टाइपो ऑपरेटर
typeof
ऑपरेटर स्ट्रिंग के रूप में अनवैल्यूएटेड ऑपरेंड के डेटा प्रकार को लौटाता है।
वाक्य - विन्यास:
typeof operand
यह दिखाता है:
ये typeof
से संभावित वापसी मान हैं:
प्रकार | प्रतिलाभ की मात्रा |
---|---|
Undefined | "undefined" |
Null | "object" |
Boolean | "boolean" |
Number | "number" |
String | "string" |
Symbol (ES6) | "symbol" |
Function वस्तु | "function" |
document.all | "undefined" |
मेजबान वस्तु (जेएस पर्यावरण द्वारा प्रदान की गई) | कार्यान्वयन पर निर्भर |
कोई अन्य वस्तु | "object" |
typeof
ऑपरेटर के साथ document.all
का असामान्य व्यवहार विरासत ब्राउज़रों का पता लगाने के लिए अपने पूर्व उपयोग से है। अधिक जानकारी के लिए, यह देखें कि डॉक्यूमेंट क्यों लिखा गया है लेकिन टाइपऑफ डॉक्यूमेंट.ऑल रिटर्न "अपरिभाषित" है?
उदाहरण:
// returns 'number'
typeof 3.14;
typeof Infinity;
typeof NaN; // "Not-a-Number" is a "number"
// returns 'string'
typeof "";
typeof "bla";
typeof (typeof 1); // typeof always returns a string
// returns 'boolean'
typeof true;
typeof false;
// returns 'undefined'
typeof undefined;
typeof declaredButUndefinedVariable;
typeof undeclaredVariable;
typeof void 0;
typeof document.all // see above
// returns 'function'
typeof function(){};
typeof class C {};
typeof Math.sin;
// returns 'object'
typeof { /*<...>*/ };
typeof null;
typeof /regex/; // This is also considered an object
typeof [1, 2, 4]; // use Array.isArray or Object.prototype.toString.call.
typeof new Date();
typeof new RegExp();
typeof new Boolean(true); // Don't use!
typeof new Number(1); // Don't use!
typeof new String("abc"); // Don't use!
// returns 'symbol'
typeof Symbol();
typeof Symbol.iterator;
शून्य संचालक
void
ऑपरेटर दी गई अभिव्यक्ति का मूल्यांकन करता है और फिर undefined
लौटता है।
वाक्य - विन्यास:
void expression
यह दिखाता है:
-
undefined
विवरण
void
ऑपरेटर को अक्सर void 0
या void(0)
लिखने के माध्यम से undefined
आदिम मूल्य प्राप्त करने के लिए उपयोग किया जाता है। ध्यान दें कि void
एक ऑपरेटर है, फ़ंक्शन नहीं है, इसलिए ()
की आवश्यकता नहीं है।
आमतौर पर एक void
अभिव्यक्ति और undefined
के परिणाम का उपयोग परस्पर विनिमय किया जा सकता है।
हालाँकि, ECMAScript के पुराने संस्करणों में, window.undefined
को किसी भी मान को असाइन किया जा सकता है, और फ़ंक्शन के अंदर फ़ंक्शन पैरामीटर चर के लिए नाम के रूप में undefined
का उपयोग करना अभी भी संभव है, इस प्रकार अन्य कोड को बाधित करता है जो undefined
के मूल्य पर निर्भर करता है।
void
हमेशा सही undefined
मान निकलेगा।
void 0
का उपयोग आमतौर पर कोड मिनिफिकेशन में भी किया जाता है, जो undefined
लिखने का एक छोटा तरीका है। इसके अलावा, यह शायद अधिक सुरक्षित है क्योंकि कुछ अन्य कोड window.undefined
साथ छेड़छाड़ कर window.undefined
।
उदाहरण:
undefined
लौटना:
function foo(){
return void 0;
}
console.log(foo()); // undefined
एक निश्चित दायरे के अंदर undefined
के मूल्य को बदलना:
(function(undefined){
var str = 'foo';
console.log(str === undefined); // true
})('foo');
एकतरफा नकार ऑपरेटर (-)
यूरी नेगेशन ( -
) इसके ऑपरेंड से पहले होता है और इसे नंबर में बदलने की कोशिश के बाद इसे नकार दिया जाता है।
वाक्य - विन्यास:
-expression
यह दिखाता है:
- एक
Number
।
विवरण
एकात्मक नकार ( -
) समान प्रकार / मानों को रूपांतरित कर सकता है जैसा कि यूनियरी प्लस ( +
) ऑपरेटर कर सकता है।
-NaN
मूल्यों को परिवर्तित नहीं किया जा सकता है, वे NaN
मूल्यांकन करेंगे (कोई -NaN
नहीं है)।
उदाहरण:
-42 // -42
-"42" // -42
-true // -1
-false // -0
-null // -0
-undefined // NaN
-NaN // NaN
-"foo" // NaN
-{} // NaN
-function(){} // NaN
ध्यान दें कि किसी सरणी को बदलने का प्रयास करने पर अप्रत्याशित रिटर्न मान हो सकते हैं।
पृष्ठभूमि में, सरणियों को पहले उनके स्ट्रिंग अभ्यावेदन में परिवर्तित किया जाता है:
[].toString() === '';
[1].toString() === '1';
[1, 2].toString() === '1,2';
ऑपरेटर फिर उन तारों को संख्याओं में बदलने का प्रयास करता है:
-[] // -0 ( === -'' )
-[1] // -1 ( === -'1' )
-[1, 2] // NaN ( === -'1,2' )
बिटवाइज़ ऑपरेटर नहीं (~)
बिटवाइज़ NOT ( ~
) प्रत्येक बिट पर एक मान में एक ऑपरेशन नहीं करता है।
वाक्य - विन्यास:
~expression
यह दिखाता है:
- एक
Number
।
विवरण
NOT ऑपरेशन की सत्य तालिका है:
ए | नहीं है |
---|---|
0 | 1 |
1 | 0 |
1337 (base 10) = 0000010100111001 (base 2)
~1337 (base 10) = 1111101011000110 (base 2) = -1338 (base 10)
एक बिटवाइज़ एक नंबर रिजल्ट में नहीं: -(x + 1)
।
उदाहरण:
मान (बेस 10) | मान (बेस 2) | वापसी (आधार 2) | वापसी (आधार 10) |
---|---|---|---|
2 | 00000010 | 11111100 | -3 |
1 | 00000001 | 11111110 | -2 |
0 | 00000000 | 11111111 | -1 |
-1 | 11111111 | 00000000 | 0 |
-2 | 11111110 | 00000001 | 1 |
-3 | 11111100 | 00000010 | 2 |
तार्किक नहीं ऑपरेटर ()
लॉजिकल नॉट ( !
) ऑपरेटर एक एक्सप्रेशन पर तार्किक निषेध करता है।
वाक्य - विन्यास:
!expression
यह दिखाता है:
- एक
Boolean
।
विवरण
लॉजिकल नॉट ( !
) ऑपरेटर एक एक्सप्रेशन पर तार्किक निषेध करता है।
बूलियन मूल्य बस उल्टा हो जाता है: !true === false
और !false === true
।
गैर-बूलियन मूल्य पहले बूलियन मूल्यों में परिवर्तित हो जाते हैं, फिर नकारात्मक होते हैं।
इसका मतलब यह है कि एक बूलियन के लिए किसी भी मूल्य को डालने के लिए एक डबल लॉजिकल नॉट ( !!
) का उपयोग किया जा सकता है:
!!"FooBar" === true
!!1 === true
!!0 === false
ये सभी !true
बराबर हैं:
!'true' === !new Boolean('true');
!'false' === !new Boolean('false');
!'FooBar' === !new Boolean('FooBar');
![] === !new Boolean([]);
!{} === !new Boolean({});
ये सब !false
बराबर हैं:
!0 === !new Boolean(0);
!'' === !new Boolean('');
!NaN === !new Boolean(NaN);
!null === !new Boolean(null);
!undefined === !new Boolean(undefined);
उदाहरण:
!true // false
!-1 // false
!"-1" // false
!42 // false
!"42" // false
!"foo" // false
!"true" // false
!"false" // false
!{} // false
![] // false
!function(){} // false
!false // true
!null // true
!undefined // true
!NaN // true
!0 // true
!"" // true
अवलोकन
यूनिरी संचालक केवल एक ऑपरेंड वाले ऑपरेटर हैं। मानक जावास्क्रिप्ट फ़ंक्शन कॉल की तुलना में यूनिरी ऑपरेटर्स अधिक कुशल हैं। इसके अतिरिक्त, यूनीरी ऑपरेटरों को ओवरराइड नहीं किया जा सकता है और इसलिए उनकी कार्यक्षमता की गारंटी है।
निम्नलिखित यूनिरी ऑपरेटर उपलब्ध हैं:
ऑपरेटर | ऑपरेशन | उदाहरण |
---|---|---|
delete | डिलीट ऑपरेटर एक ऑब्जेक्ट से एक संपत्ति को हटा देता है। | उदाहरण |
void | शून्य ऑपरेटर अभिव्यक्ति के रिटर्न मान को छोड़ देता है। | उदाहरण |
typeof | टाइपऑफ़ ऑपरेटर किसी दिए गए ऑब्जेक्ट के प्रकार को निर्धारित करता है। | उदाहरण |
+ | यूनीरी प्लस ऑपरेटर अपने ऑपरेंड को संख्या प्रकार में परिवर्तित करता है। | उदाहरण |
- | अनारी नेगेटिव ऑपरेटर अपने ऑपरेंड को नंबर में परिवर्तित करता है, फिर उसे नेगेट करता है। | उदाहरण |
~ | संचालक नहीं है। | उदाहरण |
! | तार्किक संचालक नहीं। | उदाहरण |