جاوا اسکرپٹ دے قواعد

آزاد انسائیکلوپیڈیا، وکیپیڈیا توں

جاوا سکرپٹ دے قواعد دے تحت انہاں قواعد دا احاطہ کیتا جاندا اے جنہاں دے ذریعہ جاوا سکرپٹ پروگرام نو‏‏ں درست تے غلطیاں تو‏ں پاک بنایا جاس دے۔
تھلے پیش کردہ مثالاں وچ 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.

حوالے[سودھو]

  1. JavaScript 1.1 specification
  2. 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.” 

باہرلے جوڑ[سودھو]

سانچہ:وکی کتاباں

سانچہ:جاوا سکرپٹ