جاوا اسکرپٹ دے قواعد
جاوا سکرپٹ دے قواعد دے تحت انہاں قواعد دا احاطہ کیتا جاندا اے جنہاں دے ذریعہ جاوا سکرپٹ پروگرام نوں درست تے غلطیاں توں پاک بنایا جاس دے۔
تھلے پیش کردہ مثالاں وچ alert فنکشن استعمال کیتا گیا اے۔ دراصل جاوا سکرپٹ دی معیاری لائبریری وچ ایسا فنکشن موجود نئيں جس دے ذریعہ ٹیکسٹ دکھایا جائے۔ لیکن چونکہ جاوا سکرپٹ اس وقت اکثر ویب براؤزز وچ کلائنٹ سائڈ سکرپٹنگ دے لئی استعمال ہو رہی اے تے تقریبا تمام ہی براؤزرز وچ alert فنکشن دی سہولت موجود ہُندی اے، اس لئی انہاں مثالاں وچ اس فنکشن نوں استعمال کیتا گیا اے۔
آغاز
سودھوبرنڈن ایچ نے جاوا سکرپٹ پروگرامنگ زبان دے ورژن 1٫1 دی خصوصیات دا اس طرح خلاصہ پیش کیتا سی[۱]:
” | جاوا سکرپٹ نے اپنے بیشتر قواعد جاوا توں لئی نيں، جدوں کہ کچھ چیزاں اوک تے پرل توں وی لی گئیاں نيں، ہور آبجیکٹ پروٹو ٹائپ سسٹم وچ سیلف زبان دے بلا واسطہ اثرات وی موجود نيں۔ | “ |
مقدمات
سودھوحرفی حساسیت
سودھوجاوا سکرپٹ بولی چھوٹے تے وڈے حروف دے ضمن وچ حساس (sensitive) اے۔ چناں چہ عموماً Constructor نوں وڈے حروف وچ تے فنکشن دے ناواں نوں چھوٹے حروف وچ لکھنے دا رواج اے۔
ناں فضا تے سیمی کولن
سودھوسٹرنگ دے باہر ٹیبز، سپیس تے نويں سطراں دے استعمال نوں وہائٹ سپیس (White space) کہیا جاندا اے۔ سی ورگی زباناں دے برخلاف جاوا سکرپٹ وہائٹ سپیس دے حق وچ حساس واقع ہوئی اے، چناں چہ سیمی کولن دا عدم استعمال یا غلط استعمال براہ راست پروگرام اُتے اثر انداز ہو سکدا اے تے ایرر آ سکدا اے۔[۲] درج ذیل مثالاں ملاحظہ کرن:
a = b + c
(d + e).foo()
// Treated as:
// a = b + c(d + e).foo();
لیکن
a = b + c
;(d + e).foo()
// Treated as:
// a = b + c;
// (d + e).foo();
return
a + b;
// Returns undefined. Treated as:
// return;
// a + b;
// Should be written as:
// return a + b;
تبصرے
سودھوجاوا سکرپٹ وچ تبصرے درج کرنے دا انداز بالکل سی پلس پلس تے ہور زباناں ہی دی طرح اے۔
// a short, one-line comment
/* this is a long, multi-line comment
about my script. May it one day
be great. */
/* Comments /* may not be nested */ Syntax error */
متغیرات
سودھوجاوا سکرپٹ دے متغیرات (Variables) وچ معلومات درج کرنے دے دوران ٹائپ نئيں لکھیا جاندا، ہور انہاں متغیرات وچ ہر قسم دی معلومات نوں رکھیا جاسکدا اے۔ نويں متغیرات درج کرنے دے لئی نويں سطر دے آغاز وچ var
تحریر کردے نيں تے فیر متغیر دا ناں دتا جاندا اے، ہور اک ہی وقت وچ متعدد متغیرات وی دتے جا سکدے نيں۔
ان متغیرات وچ خصوصی علامات مثلاً #،٪ وغیرہ استعمال نئيں کيتی جاسکتاں، ہور جاوا سکرپٹ بولی دے کچھ مخصوص لفظاں نيں جداں default, while, do, break وغیرہ، انہاں نوں وی استعمال نئيں کیتا جاسکدا۔
مثالاں
سودھوذیل وچ متغیرات دی مثال ملاحظہ کرن:
var x = 0; // A global variable, because it is not in any function
function f() {
var z = 'foxes', r = 'birds'; // 2 local variables
m = 'fish'; // global, because it wasn't declared anywhere before
function child() {
var r = 'monkeys'; // This variable is local and does not affect the "birds" r of the parent function.
z = 'penguins'; // Closure: Child function is able to access the variables of the parent function.
}
twenty = 20; // This variable is declared on the next line, but usable anywhere in the function, even before, as here
var twenty;
child();
return x; // We can use x here, because it is global
}
f();
alert(z); // This line will raise a ReferenceError exception, because the value of z is no longer available
ڈیٹا ٹائپس
سودھوجاوا سکرپٹ دے متغیرات وچ مختلف قسماں دے ڈیٹا ٹائپس رکھے جاسکدے نيں، مثلاً اعداد، سٹرنگز، ایرے وغیرہ۔
غیر تعریف شدہ
سودھوغیر تعریف شدہ (Undefined) ڈیٹا ٹائپ انہاں متغیرات نوں کہیا جاندا اے جنہاں نوں initialize نہ کیتا گیا ہو، یعنی انہاں نوں کوئی ویلیو نہ دتی گئی اے۔ بولین (Boolean) ڈیٹا ٹائپ وچ اس طرح دے متغیرات نا درست (false) سمجھے جاندے نيں۔
var test; // variable declared, but not defined, ...
// ... set to value of undefined
var testObj = {};
alert(test); // test variable exists, but value not ...
// ... defined, displays undefined
alert(testObj.myProp); // testObj exists, property does not, ...
// ... displays undefined
alert(undefined == null); // unenforced type during check, displays true
alert(undefined === null); // enforce type during check, displays false
واضح رہے کہ جاوا سکرپٹ وچ غیر تعریف شدہ ناں توں کوئی ٹائپ نئيں بنائی گئی اے، چناں چہ (x == undefined)
نوں ایہ جانچنے دے لئی استعمال کرنا کہ متغیر نوں کوئی ویلیو دتی گئی اے یا نئيں، کوئی بہت زیادہ درست طریقہ نئيں اے۔ کیونکہ ECMAScript 5 توں پہلے اس var undefined = "I'm defined now";
طرح لکھنا بالکل درست سی ۔ بلکہ زیادہ بہتر ایہ اے کہ اس مقصد دے لئی (typeof x === 'undefined')
نوں استعمال کیتا جائے۔
اس قسم دے فنکشنز مطلوبہ کم انجام نئيں دیندے:
function isUndefined(x) { var u; return x === u; } // like this...
function isUndefined(x) { return x === void 0; } // ... or that second one
function isUndefined(x) { return (typeof x) === undefined"; } // ... or that third one
نل (null)
سودھوغیر تعریف شدہ دے برخلاف، نل ویلیو اکثر اس گل دا اشارہ کردی اے کہ جو بیان کیتا گیا اے اوہ خالی اے۔ بولین (Boolean) وچ نل false value سمجھی جاندی اے۔
alert(null == undefined); // unenforced type during check, displays true
alert(null === undefined); // enforce type during check, displays false
alert(typeof null === 'object'); // true
سٹرنگز
سودھوجملاں نوں سٹرنگ کہیا جاندا اے۔ جاوا سکرپٹ وچ سٹرنگ نوں واوین (double یا single quotes) وچ رکھیا جاندا اے۔
var greeting = "Hello, World!";
var anotherGreeting = 'Greetings, people of Earth.';
انفرادی حروف نوں دکھانے دے لئی charAt طریقہ (جو String.prototype فراہم کردا اے ) استعمال کیتا جا سکدا اے۔ کسی وی سٹرنگ وچ کسی انفرادی حرف تک رسائی پانے دے لئی ایہ راجح طریقہ اے کیونکہ ایہ غیر معیاری براؤزرز وچ وی کم کردا اے۔
var h = greeting.charAt(0);
جدید معیاری براؤزرز وچ اس کم دے لئی دوسرا متبادل طریقہ وی استعمال کیتا جاسکدا اے (ایہی طریقہ ایرے وچ وی استعمال کیتا جاندا اے )۔
var h = greeting[0];
واضح رہے کہ اس انداز وچ سٹرنگ دے حروف نوں حاصل نئيں کیتا جا سکدا:
greeting[0] = "H"; // Fails.
برابر دے نشان (==) دے ذریعہ ایہ معلوم کیتا جا سکدا اے کہ آیا دونے سٹرنگز دے حروف نوع تے لمبائی دے لحاظ توں یکساں اے یا نئيں۔
var x = "World";
var compare1 = ("Hello, " +x == Hello, World"); // Here compare1 contains true.
var compare2 = ("Hello, " +x == hello, World"); // Here compare2 contains ...
// ... false since the ...
// ... first characters ...
// ... of both operands ...
// ... are not of the same case.
واوین دے اندر واوین نئيں استعمال کیتے جاسکدے نيں، جدوں تک انہاں نوں escape نہ کیتا جائے:
var x = '"Hello, World!" he said.' // Just fine.
var x = ""Hello, World!" he said." // Not good.
var x = "\"Hello, World!\" he said." // That works by replacing " with \"
ہور String کنسٹرکٹر دے ذریعہ وی سٹرنگ بنائی جاسکدی اے:
var greeting = new String("Hello, World!");
valueOf دے ذریعہ سٹرنگ آبجیکٹ دی primitive ویلیو معلوم دی جاسکدی اے۔
var s = new String("Hello!");
typeof s; // Is 'object'.
typeof s.valueOf(); // Is 'string'.
واضح رہے کہ دو سٹرنگ آبجیکٹ دے درمیان یکسانی سٹرنگز دے درمیان عمومی یکسانی دی طرح نئيں ہُندی۔
var s1 = new String("Hello!");
var s2 = new String("Hello!");
s1 == s2; // Is false, because they are two distinct objects.
s1.valueOf() == s2.valueOf(); // Is true.
حوالے
سودھو- ↑ JavaScript 1.1 specification
- ↑ Flanagan, David (2006). JavaScript: The definitive Guide, 16. ISBN 978-0-596-10199-2. “Omitting semicolons is not a good programming practice; you should get into the habit of inserting them.”
باہرلے جوڑ
سودھو- A re-introduction to JavaScript – Mozilla Developer Center
- Comparison Operators in JavaScript
- ECMAScript standard references: ECMA-262
- Interactive JavaScript Lessons – example-based
- JavaScript on About.com: lessons and explanation
- JavaScript Training
- Mozilla Developer Center Core References for JavaScript versions 1.5, 1.4, 1.3 and 1.2
- Mozilla JavaScript Language Documentation