سيٽ اعتراض جو قسم ES6 ۾ متعارف ڪرايو ويو، ...، اسپريڊ آپريٽر سان گڏ، اسان ان کي استعمال ڪري سگھون ٿا ھڪڙو نئون صف ٺاھڻ لاءِ جيڪو صرف منفرد قدرن تي مشتمل آھي.
پر ڪڏهن ڪڏهن ٽيرنري آپريٽر به ضرورت کان وڌيڪ پيچيده هوندو آهي. اسان استعمال ڪري سگھون ٿا '۽' ۽ ۽ 'يا' بدران Boolean آپريٽرز ڪجهه اظهارن جو جائزو وٺڻ لاءِ اڃا به وڌيڪ جامع انداز ۾. اهو اڪثر ڪري سڏيو ويندو آهي "شارٽ سرڪٽ" يا "شارٽ سرڪٽ جي درجه بندي".
ڪيئن هن ڪم ڪندو
اچو ته چئو ته اسان صرف ٻه يا وڌيڪ شرطن مان هڪ موٽڻ چاهيون ٿا.
استعمال ڪندي && پھريون غلط قدر واپس ڪندو. جيڪڏھن ھر عمل درست ڪري ٿو، ته پوءِ آخري اظهار جو جائزو ورتو ويندو.
let one = 1, two = 2, three = 3;
console.log(one && two && three); // Result: 3
console.log(0 && null); // Result: 0
استعمال ڪندي || پهريون صحيح قدر واپس ڪندو. جيڪڏھن ھر ھڪ آپريشن غلط ڏانھن ويجھو، پوءِ آخري قدر ڪيل قدر واپس ڪيو ويندو.
let one = 1, two = 2, three = 3;
console.log(one || two || three); // Result: 1
console.log(0 || null); // Result: null
مثال طور 1
اچو ته چئون ته اسان هڪ متغير جي ڊيگهه واپس ڪرڻ چاهيون ٿا، پر اسان کي ان جي قسم جي خبر ناهي.
انهي حالت ۾، توهان استعمال ڪري سگهو ٿا if/else چيڪ ڪرڻ لاءِ ته foo صحيح قسم آهي، پر اهو طريقو تمام ڊگهو ٿي سگهي ٿو. تنهن ڪري، اهو بهتر آهي ته اسان جي "شارٽ سرڪٽ" وٺو.
return (foo || []).length;
جيڪڏهن متغير foo وٽ مناسب ڊگھائي آهي، ته پوءِ اهو واپس ڪيو ويندو. ٻي صورت ۾ اسان حاصل ڪنداسين 0.
مثال طور 2
ڇا توھان کي ھڪڙي گھربل اعتراض تائين پھچڻ ۾ مسئلو آھي؟ توهان کي خبر ناهي ته ڇا هڪ اعتراض يا ان جي ذيلي ملڪيت مان هڪ موجود آهي، ۽ اهو مسئلو ٿي سگهي ٿو.
مثال طور، اسان چاهيون ٿا ته ڊيٽا جي ملڪيت تائين پهچون هن.state ۾، پر ڊيٽا جي وضاحت نه ڪئي وئي آهي جيستائين اسان جو پروگرام واپس آڻڻ جي درخواست نه ڏئي.
ان تي منحصر آهي جتي اسان ان کي استعمال ڪندا آهيون، this.state.data کي ڪال ڪرڻ ايپليڪيشن کي شروع ٿيڻ کان روڪي سگھي ٿو. مسئلو حل ڪرڻ لاء، اسان هن کي مشروط اظهار ۾ لپي سگهون ٿا:
اسان && استعمال ڪرڻ لاءِ مٿي ڏنل ڪوڊ کي تبديل نٿا ڪري سگھون. 'ڊيٽا آڻڻ' && this.state.data آپريٽر واپس ڪندو this.state.data قطع نظر ان جي وضاحت ٿيل آهي يا نه.
اختياري زنجير
ھڪڙو ھڪڙو اختياري زنجير استعمال ڪرڻ جي صلاح ڪري سگھي ٿو جڏھن ھڪڙي ملڪيت کي واپس ڪرڻ جي ڪوشش ڪري ھڪڙي وڻ جي جوڙجڪ ۾. پوء، سوال جي نشان جي علامت؟ ھڪڙي ملڪيت کي حاصل ڪرڻ لاء استعمال ڪري سگھجي ٿو صرف ان صورت ۾ جيڪڏھن اھو null نه آھي.
مثال طور، اسان هن.state.data؟...() حاصل ڪرڻ لاءِ مٿي ڏنل مثال کي ريفيڪٽر ڪري سگهون ٿا. اھو آھي، ڊيٽا صرف واپسي آھي جيڪڏھن قدر ناھي.
اتي حالتون ٿي سگھن ٿيون جتي + کي اضافي آپريٽر جي بجاءِ ڪنٽينشن آپريٽر جي طور تي تعبير ڪيو ويندو. هن کان بچڻ لاء، توهان کي استعمال ڪرڻ گهرجي tildes: ~~. هي آپريٽر -n-1 جي برابر آهي. مثال طور، ~15 برابر آهي -16.
هڪ قطار ۾ ٻه ٽيلڊ استعمال ڪرڻ آپريشن کي رد ڪري ٿو ڇاڪاڻ ته - (- - n - 1) - 1 = n + 1 - 1 = n. ٻين لفظن ۾، ~-16 برابر آهي 15.
ES7 ۾ شروع ٿي، توھان استعمال ڪري سگھو ٿا Exponentiation operator ** کي طاقتن لاءِ شارٽ ھينڊ طور. اهو Math.pow (2, 3) استعمال ڪرڻ کان گهڻو تيز آهي. اهو سادو لڳي ٿو، پر هي نقطو ٽيڪنالاجي جي فهرست ۾ شامل آهي، ڇاڪاڻ ته اهو هر هنڌ ذڪر نه ڪيو ويو آهي.
console.log(2 ** 3); // Result: 8
ان کي ^ سمبل سان گڏ نه هجڻ گهرجي، جيڪو عام طور تي وضاحت لاءِ استعمال ٿيندو آهي. پر JavaScript ۾ هي XOR آپريٽر آهي.
ES7 کان اڳ، ** شارٽ ڪٽ صرف bitwise کاٻي شفٽ آپريٽر استعمال ڪندي بنيادي 2 جي طاقتن لاءِ استعمال ٿي سگھي ٿو <<:
Math.pow(2, n);
2 << (n - 1);
2**n;
مثال طور، 2 << 3 = 16 برابر آهي 2 ** 4 = 16.
انٽيجر تائين فلوٽ
آپريشنز / ٽائپ ڪنورشن
جيڪڏهن توهان کي فلوٽ کي انٽيجر ۾ تبديل ڪرڻ جي ضرورت آهي، توهان استعمال ڪري سگهو ٿا Math.floor(), Math.ceil() يا Math.round(). پر ھڪڙو تيز طريقو آھي، ان لاءِ اسين استعمال ڪريون ٿا |، اھو آھي، OR آپريٽر.