ای سی ایم اے بولین آپریشن
- ਪਿਛਲਾ ਪੰਨਾ ਸਥਾਨਕ ਕੰਮ
- ਅਗਲਾ ਪੰਨਾ ਗੁਣਾਤਮਕ ਕੰਮ
بولین آپریشنروں کا بولین آپریشن بہت اہم ہیں، وہ پروگرام لینگویج کا اپنا کام کرنا چاہتا ہیں。
بولین آپریشنروں کی تینوں قسمیں ہیں: نات، اینڈ اور اور.
تو بولین آپریشن
بائیکدھار کئی لوگک آپریشنروں کے پہلے، ہم پہلے ای سی ایم اے اسکریپٹ-262 وائی سکینک میں کچھ ویلو تو بولین آپریشن کا معائنہ کریں گے。
آبسٹریکٹ آپریشن تو بولین ویلو تھر پر پارامٹر کو اسی جدول کی رو سے بولین ویلو میں تبدیل کردیگا:
پارامٹر کا نوعیت | ਨਤੀਜਾ |
---|---|
یونڈیفائنڈ | false |
نول | false |
بولین | نتیجہ ورودی پارامٹر کا ہوگا (تغییر نہیں کردیا جائے گا) |
نمبر | اگر پارامٹر +0، -0 یا NaN ہو، تو نتیجہ false ہوگا؛ نہ تو true ہوگا。 |
اسٹرنگ | اگر پارامٹر خالی جملہ ہو، تو نتیجہ false ہوگا؛ نہ تو true ہوگا。 |
آوبجیکٹ | true |
لوگک نات آپریشنر
ECMAScript میں logic NOT آپریٹر کا کام C اور Java میں logic NOT آپریٹر کا کام ساتھ ساتھ ہوتا ہے، جو بھی感叹 نکالنے سے نمودار ہوتا ہے.
logic OR اور logic AND آپریٹروں سے فرق کے باوجود،logic NOT آپریٹر کا درآمد یقیناً Boolean کا مطلب ہوگا.
logic NOT آپریٹر کا کام کئے جانا جاتا ہے:
- اگر آپریشن ایک آئیٹم ہو تو false درآمد دینا ہوگا
- اگر آپریشن 0 ہو تو true درآمد دینا ہوگا
- اگر آپریشن 0 سے باہر کسی بھی عدد ہو تو false درآمد دینا ہوگا
- اگر آپریشن null ہو تو true درآمد دینا ہوگا
- اگر آپریشن NaN ہو تو true درآمد دینا ہوگا
- اگر آپریشن undefined ہو تو خطا پیش ہوگی
عموماً اس آپریٹر کو لائن چلنے کا کنٹرول کرنے کے لئے استعمال کیا جاتا ہے:
var bFound = false; var i = 0; while (!bFound) { if (aValue[i] == vSearchValues) { bFound = true; } i++; } }
اس مثال میں، Boolean متغیر (bFound) استعمال کی گئی ہے تاکہ پیداکردن کی کامیابی یا ناکامی کو ریکارڈ کیا جائے. جب معاملے میں معلومات پائی جائیں تو bFound کو true بنادیا جائے گا، !bFound کو false بنادیتا ہوگا، جس کا مطلب یہ ہوگا کہ کا مطلب یہ ہوگا کہ لائن کا چلنا تختار سے چل جائے گا.
جب ECMAScript کی متغیر کا Boolean کا مطلب دینا ہے، تو logic NOT آپریٹر بھی استعمال کیا جاسکتا ہے. اس طریقے سے کسی بھی آپریشن پر دو NOT آپریٹر استعمال کئے جاسکتے ہیں. جب کسی بھی آپریشن کا نوعیت کیا بھی ہو، پہلا NOT آپریٹر Boolean کا مطلب دینا ہے. دوسرا NOT آپریٹر Boolean کا مطلب کو منفی بنادیتا ہے، جس سے متغیر کا حقیقی Boolean کا مطلب ملتا ہے.
var bFalse = false; var sRed = "red"; var iZero = 0; var iThreeFourFive = 345; var oObject = new Object; document.write("bFalse کا منطقی مقدار ہے " + (!!bFalse)); document.write("sRed کا منطقی مقدار ہے " + (!!sRed)); document.write("iZero کا منطقی مقدار ہے " + (!!iZero)); document.write("iThreeFourFive کا منطقی مقدار ہے " + (!!iThreeFourFive)); document.write("oObject کا منطقی مقدار ہے " + (!!oObject));
ਨਤੀਜਾ:
bFalse ਦਾ ਲੋਜਿਕਲ ਮੁੱਲ false ਹੈ sRed ਦਾ ਲੋਜਿਕਲ ਮੁੱਲ true ਹੈ iZero ਦਾ ਲੋਜਿਕਲ ਮੁੱਲ false ਹੈ iThreeFourFive ਦਾ ਲੋਜਿਕਲ ਮੁੱਲ true ਹੈ oObject ਦਾ ਲੋਜਿਕਲ ਮੁੱਲ true ਹੈ
ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਆਮਦਾਰ
ECMAScript ਵਿੱਚ ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਆਮਦਾਰ ਅਨੁਸਾਰ (&&) ਨਾਲ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ:
ਉਦਾਹਰਣ ਵਜੋਂ:
var bTrue = true; var bFalse = false; var bResult = bTrue && bFalse;
ਹੇਠ ਲਿਖੀ ਸਚਮੁੱਚ ਸਾਰੀ ਤਾਲੀਕਾ ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਕੰਡੀਸ਼ਨਰ ਦਾ ਵਿਵਰਣ ਦਿੰਦੀ ਹੈ:
ਕੰਮਕਾਜ 1 | ਕੰਮਕਾਜ 2 | ਨਤੀਜਾ |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਦੇ ਆਪਰੇਟਰ ਕੋਈ ਵੀ ਤਰਾਂ ਦਾ ਮੁੱਲ ਹੋ ਸਕਦਾ ਹੈ ਨਾ ਕੇ ਸਿਰਫ਼ Boolean ਮੁੱਲ。
ਜੇਕਰ ਕੋਈ ਆਪਰੇਟਰ ਮੂਲ ਬੋਲੀਨ ਮੁੱਲ ਨਹੀਂ ਹੈ ਤਾਂ ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਬੋਲੀਨ ਮੁੱਲ ਵਾਪਸ ਨਹੀਂ ਦਿੰਦਾ:
- ਜੇਕਰ ਇੱਕ ਆਪਰੇਟਰ ਆਬਜੈਕਟ ਹੈ ਅਤੇ ਦੂਜਾ Boolean ਮੁੱਲ ਹੈ ਤਾਂ ਆਬਜੈਕਟ ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇਗਾ。
- ਜੇਕਰ ਦੋਵੇਂ ਆਪਰੇਟਰ ਆਬਜੈਕਟ ਹਨ ਤਾਂ ਦੂਜੇ ਆਬਜੈਕਟ ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇਗਾ。
- ਜੇਕਰ ਕੋਈ ਆਪਰੇਟਰ null ਹੈ ਤਾਂ null ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇਗਾ。
- ਜੇਕਰ ਕੋਈ ਆਪਰੇਟਰ NaN ਹੈ ਤਾਂ NaN ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇਗਾ。
- ਜੇਕਰ ਕੋਈ ਕੰਮਕਾਜ undefined ਹੈ, ਤਾਂ ਗਲਤੀ ਹੁੰਦੀ ਹੈ。
ਜਵਾਬ ਦੇ ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਨਾਲ ਸਮਾਨ ਹੈ ECMAScript ਵਿੱਚ ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਵੀ ਸਰਲ ਆਪਰੇਸ਼ਨ ਹੈ ਜਿਵੇਂ ਕਿ ਜਵਾਬ ਵਿੱਚ ਪਹਿਲੇ ਆਪਰੇਟਰ ਦਾ ਮੁੱਲ ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ ਤਾਂ ਦੂਜੇ ਆਪਰੇਟਰ ਨੂੰ ਹੱਲ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ। ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਲਈ ਜੇਕਰ ਪਹਿਲੇ ਆਪਰੇਟਰ false ਹੈ ਤਾਂ ਦੂਜੇ ਆਪਰੇਟਰ ਦਾ ਮੁੱਲ ਕੀਮਤੀ ਕੀਤੀ ਜਾਵੇਗੀ true ਨਹੀਂ ਹੋ ਸਕਦੀ।
ਸੋਚੋ ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ:
var bTrue = true; var bResult = (bTrue && bUnknown); //ਗਲਤੀ ਆਉਂਦੀ ਹੈ alert(bResult); //ਇਹ ਪੜ੍ਹਾਉਣਾ ਨਹੀਂ ਹੋਵੇਗਾ
ਇਸ ਕੋਡ ਵਿੱਚ ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਕਰਦੇ ਸਮੇਂ ਗਲਤੀ ਆਉਂਦੀ ਹੈ ਕਿਉਂਕਿ ਵੈਰੀਅਬਲ bUnknown ਅਣਪਰਿਭਾਸ਼ਿਤ ਹੈ। ਵੈਰੀਅਬਲ bTrue ਦਾ ਮੁੱਲ true ਹੈ ਕਿਉਂਕਿ ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਵਾਲੀ ਗਿਣਤੀ ਵਾਲੀ ਗਿਣਤੀ ਨੂੰ ਹੱਲ ਕਰੇਗਾ ਵੈਰੀਅਬਲ bUnknown। ਇਸ ਤਰ੍ਹਾਂ ਗਲਤੀ ਆਉਂਦੀ ਹੈ ਕਿਉਂਕਿ bUnknown ਦਾ ਮੁੱਲ undefined ਹੈ ਅਤੇ ਉਹ ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਲਈ ਨਹੀਂ ਵਰਤਿਆ ਜਾ ਸਕਦਾ।
ਇਸ ਉਦਾਹਰਣ ਨੂੰ ਸੰਸ਼ੋਧਤ ਕਰੋ ਅਤੇ ਪਹਿਲੇ ਸੰਖਿਆ ਨੂੰ false ਸੈਟ ਕਰੋ ਤਾਂ ਤਰਕਸੰਗਤ ਗਲਤੀ ਨਹੀਂ ਹੋਵੇਗੀ:
var bFalse = false; var bResult = (bFalse && bUnknown); alert(bResult); //ਪ੍ਰਿੰਟ "false"
ਇਸ ਕੋਡ ਵਿੱਚ، ਸਕ੍ਰਿਪਟ ਲੋਜਿਕਲ ਏਂਡ ਆਪਰੇਸ਼ਨ ਦੇ ਮੁੱਲ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰੇਗਾ,ਜਿਵੇਂ ਕਿ ਚਿੰਨ੍ਹ "false"। ਚੰਗੀ ਤਰ੍ਹਾਂ ਨਾਲ ਵੈਰੀਅਬਲ bUnknown ਦਾ ਮੁੱਲ undefined ਹੋਵੇ ਵੀ ਉਹ ਨਹੀਂ ਹੱਲ ਕੀਤਾ ਜਾਵੇਗਾ ਕਿਉਂਕਿ ਪਹਿਲੇ ਆਪਰੇਟਰ ਦਾ ਮੁੱਲ false ਹੈ।
提示:在使用逻辑 AND 运算符时,必须记住它的这种简便计算特性。
逻辑 OR 运算符
ECMAScript 中的逻辑 OR 运算符与 Java 中的相同,都由双竖线(||)表示:
var bTrue = true; var bFalse = false; var bResult = bTrue || bFalse;
ਹੇਠ ਲਿਖੀ ਸਤਾਰਸ਼ੈਡ ਟੇਬਲ ਲੋਜਿਕਲ OR ਕੰਮਕਾਜ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਦੱਸਦੀ ਹੈ:
ਕੰਮਕਾਜ 1 | ਕੰਮਕਾਜ 2 | ਨਤੀਜਾ |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
ਲੋਜਿਕਲ AND ਕੰਮਕਾਜ ਦੇ ਅਨੁਰੂਪ, ਜੇਕਰ ਕੋਈ ਕੰਮਕਾਜ Boolean ਮੁੱਲ ਨਹੀਂ ਹੈ, ਤਾਂ ਲੋਜਿਕਲ OR ਕੰਮਕਾਜ ਲਾਜਿਕਲ ਮੁੱਲ ਵਾਪਸ ਨਹੀਂ ਦਿੰਦਾ:
- ਜੇਕਰ ਕੋਈ ਕੰਮਕਾਜ ਆਬਜੈਕਟ ਹੈ ਅਤੇ ਆਬਜੈਕਟ ਦੇ ਬਾਅਦ ਦੇ ਕੰਮਕਾਜ ਮੁੱਲਾਂ false ਹਨ, ਤਾਂ ਆਬਜੈਕਟ ਵਾਪਸ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ。
- ਜੇਕਰ ਦੋਵੇਂ ਕੰਮਕਾਜ ਆਬਜੈਕਟ ਹਨ, ਤਾਂ ਪਹਿਲਾ ਆਬਜੈਕਟ ਵਾਪਸ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ。
- ਜੇਕਰ ਆਖਰੀ ਕੰਮਕਾਜ null ਹੈ ਅਤੇ ਹੋਰ ਕੰਮਕਾਜ ਮੁੱਲਾਂ false ਹਨ, ਤਾਂ null ਵਾਪਸ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ。
- ਜੇਕਰ ਆਖਰੀ ਕੰਮਕਾਜ NaN ਹੈ ਅਤੇ ਹੋਰ ਕੰਮਕਾਜ ਮੁੱਲਾਂ false ਹਨ, ਤਾਂ NaN ਵਾਪਸ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ。
- ਜੇਕਰ ਕੋਈ ਕੰਮਕਾਜ undefined ਹੈ, ਤਾਂ ਗਲਤੀ ਹੁੰਦੀ ਹੈ。
ਲੋਜਿਕਲ AND ਕੰਮਕਾਜ ਨਾਲ ਇਕੱਲੇ, ਲੋਜਿਕਲ OR ਕੰਮਕਾਜ ਵੀ ਸਰਲ ਕੰਮਕਾਜ ਹੈ।ਲੋਜਿਕਲ OR ਕੰਮਕਾਜ ਲਈ, ਜੇਕਰ ਪਹਿਲਾ ਕੰਮਕਾਜ ਮੁੱਲ true ਹੈ, ਤਾਂ ਦੂਜਾ ਕੰਮਕਾਜ ਨਹੀਂ ਗਿਣਿਆ ਜਾਂਦਾ ਹੈ。
ਉਦਾਹਰਣ ਵਜੋਂ:
var bTrue = true; var bResult = (bTrue || bUnknown); alert(bResult); //"true" ਆਉਟਪੁੱਟ
ਇਸ ਪਹਿਲੇ ਉਦਾਹਰਣ ਦੇ ਅਨੁਰੂਪ, ਵੈਰੀਅੱਬਲ bUnknown ਅਣਮਿੱਥਤਾ ਵਾਲੀ ਹੈ। ਪਰ, ਵੈਰੀਅੱਬਲ bTrue ਦਾ ਮੁੱਲ true ਹੈ, ਇਸ ਲਈ bUnknown ਨੂੰ ਨਹੀਂ ਗਿਣਿਆ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਆਉਣ ਵਾਲਾ ਆਉਟਪੁੱਟ "true" ਹੈ。
ਅਗਰ bTrue ਨੂੰ false ਬਣਾਇਆ ਜਾਵੇ, ਗਲਤੀ ਹੁੰਦੀ ਹੈ:
var bFalse = false; var bResult = (bFalse || bUnknown); //ਗਲਤੀ ਹੁੰਦੀ ਹੈ alert(bResult); //ਇਸ ਪਾਠ ਨੂੰ ਨਹੀਂ ਚਲਾਇਆ ਜਾਵੇਗਾ
- ਪਿਛਲਾ ਪੰਨਾ ਸਥਾਨਕ ਕੰਮ
- ਅਗਲਾ ਪੰਨਾ ਗੁਣਾਤਮਕ ਕੰਮ