(بيولا ةجمرب ررقم 1) لصفلا 4: ةغل تايساسأ Javascript
(بيولا ةجمرب ررقم 1) لصفلا 4: ةغل تايساسأ Javascript
-0-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
-1-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
الكلمات المفتاحية
، المتغيرات ،أنم ا اااي التي ا ااان ا ااات ،الت ،ا ااابير إلال،م،ي ا ااات ،اكرا ا اااظ إلاكا ار ،ال ا ا ا ا ا ا ااري ،الت رار ،الو ا ااا
المصفوفات ،مطابقة النماذ .
الملخص
نست،رض في هذا الفصل أساسيات لغة الترمجة .JavaScript
األهداف التعليمية
يت،رف الطالب في هذا الفصل ع،ى
• المتغيرات
• األنماي
• ال،م،يات
• الت،ابير
• اكرااظ إلاك هار
• ت،،يمات التحكم
• المصفوفات
• الو ا
• مطابقة النماذ
المخطط
يضم فصل أساسيات لغة 5 JavaScriptإلحدات ( )Learning Objectsهي:
• أساسيات JavaScript
• ت،،يمات التحكم
• المصفوفات
Functions • الو ا
• مطابقة النماذ
-2-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
األهداف التعليمية:
• أساسيات الترمجة غرضية التوجه إلJavaScript
• الخصا ص ال،امة ل ،كل
• الت،،يمات
• األنماي إلال،م،يات إلالت،ابير
• التصريح عن المتغيرات
• ال،م،يات الرقمية
• تحويل األنماي الضمني
• تحويل األنماي الصريح
• الغرض Date
• اكرااظ إلاك هار
• الغرض window
-3-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
مقدمة
هرت ال،غااة الخطااا يااة JavaScriptعااا 1996نتيجااة ت،اااإلم مبمر بين ال ا ا ا ا ا ا اار تين Netscape
إل .Sunإلأصبحت اليو معيار عالمي م،تمد .ISO-16262
لغة JavaScriptمن ثالثة أجزاء ر يسية: تتأل
• ق،ب ال،غة Coreإلتحوي الت،،يمات األساسية ل،غة.
• جهة الزبوم Client Sideإلتحوي مجموعة األغراض التي تدعم التحكم بالمسا ا ا ا اات،رض إلالتفاعل
مع المستخد (إلهو الجزء األكبر استخداماً من قتل مطوري الويب).
• جهاة المخاد Server Sideإلتحوي مجموعاة األغراض التي ميمكن أم تت،اامال مع مخاد الوياب،
ك،م،يات الوصوظ إلى قواعد التيانات مبالً.
-4-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
نصي مستقل إلتضمينها باستخدا : • أإل (إلهو األفضل) إلضع الخططات في م،
"<script type="text/javaScript
>"src="myScript.js
></script
• ميمكن إلضاع ت،،يمات ال،غة ضامن ت،،يقات ااصاة من ال اكل التالي إلذلك بهدف إافاء الت،،يمات
عن المتصفحات التي ال تدعم :JavaScript
<!--
– -- JavaScript script
>//--
عرفات
الم ّ
ُ
• يجب أم تتدأ الم،رفات Identifiersفي JavaScriptبحرف أإل تحت السا ا ا ااطر (ا) أإل إشا ا ا ااارة
الدإلالر .$ب،دها ميمكن أم يحوي الم،رف ع،ى حرف أإل رقم أإل تحت السطر أإل رإلالر.
• ال يوجد حد لطوظ الم،رف.
• ت وم javaScriptحساسة لحالة األحرف .case sensitive
الكلمات المفتاحية
تحوي ال،غة ع،ى مجموعة من ال ،مات المفتاحية:
break, case, catch, continue, default, delete, do, else, finally, for, function, if, in,
instanceof, new, return, switch, this, throw, try, typeof, var, void, while, with.
-5-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
التعليقات
ميمكن إلضع الت،،يقات ع،ى سطر باستخدا //أإل ع،ى أكبر من سطر باستخدا ./* . . . . */
التعليمات
ميس ا ا ااتحس ا ا اان إلض ا ا ااع ل ت،،يمة ع،ى س ا ا ااطر إل;نها ها بوض ا ا ااع فاص ا ا اا،ة منقو ة ( ) .إذ أم مفس ا ا اار ال،غة
interpreterيض ا ااع فاص ا اا،ة منقو ة عند ل نهاية س ا ااطر لما ي،تترم ت،،يمة .مما قد يقور لخطأ ما ميتين
المباظ التالي:
;return x
;x
(حيث سيقو المفسر بوضع فاص،ة منقو ة ب،د ،returnمما سيج،ل إلضع xغير قانوني).
-6-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
ت وم النتيجة:
a: undefined
b: NaN
التصريح عن المتغيرات
تتميز JavaScriptبأنها تقو بتحديد نمط المتغير ب ااكل ريناميكي حس ااب القيمة المس ااندم له .ما ميمكن
إسنار قيمة من أي نمط لنفس المتغير.
ميمكن التصريح عن متغير ب كل ضمني إلذلك بإسنار قيمة لهa= 10; :
أإل ب كل صريح باستخدا ال ،مة المفتاحية :var
var a,
sum = 0,
"today = "Monday,
;flag = false
-7-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
العمليات الرقمية
توفر JavaScriptال،م،يات الرقمية:
++, --, +, -, *, /, %
.-إلفي حاظ تسا ا ا اااإلي أع،ى من تراعي JavaScriptأفضا ا ا اا،ية ال،م،يات حيث ت وم أفضا ا ا اا،ية * /
يتم تطتيق ال،م،يات من اليسار ل،يمين.
األفض،يات في ت،تير ّ
مثال:
ميتين المباظ التالي يفية تطتيق األفض،يات إلالتجميع:
>"<script type="text/javaScript
var a = 2,
b = 4,
c,
;d
;c = 3 + a * b
)// * is first, so c is now 11 (not 24
;d = b / a / 2
)// / association left, so d is now 1 (not 4
;)">document.write("c: ", c, "<br /
;)">document.write("d: ", d, "<br /
></script
الغرض Math
يوفر الغرض Mathمجموعة من الطرق ع،ى األرقا مبل:
floor, round, max, min, cos, sin. . . ,
مثالً:
(Math.sin(x
-8-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
الغرض Number
• يوفر الغرض Numberمجموعة من الخصا ص ذات القيم البابتة الرقمية:
MAX_VALUE, MIN_VALUE, NaN, POSITIVE_INFINITY, NEGATIVE_INFINITY, PI.
(مبالً ،تم،طي Number.Min_VALUEأصغر قيمة ممكنة).
• تم،يد عم،ية جترية مع فيضام overflowالقيمة .NaN
• تمستخد الدالة )( isNaNالاتبار أم متغير له القيمة .NaN
• ل،غرض Numberالطريقة )( toStringكرجاع الرقم س،س،ة نصية:
Var price= 477,
;Str_price
. . .
;)(Str_price = price.toString
-9-
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
مثال:
حاالت التحويل الضمني: ميتين المباظ التالي مخت،
>"<script type="text/javaScript
;var x, y, z, t
;x = "August " + 2007
// x now is August 2007
;)">document.write("x now is ", x, "<br /
;"y = 2007 + " August
// y now is 2007 August
;)">document.write("y now is ", y, "<br /
;"z = 7 * "3
// z now is 21
;)">document.write("z now is ", z, "<br /
;t = "lo" * 3
// t now is NaN
;)">document.write("t now is ", t, "<br /
></script
- 10 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
:مثال
:حاالت التحويل الصريح ،ميتين المباظ التالي مخت
<script type="text/javaScript">
var str1 = String(33.33);
// str1 now is "33.33"
document.write("str1 now is ", str1, "<br />");
var num1 = 6.6;
var str2 = num1.toString();
//str2 now is "6.6"
document.write("str2 now is ", str2, "<br />");
var num2 = Number(str1);
// num2 now is 33.33
document.write("num2 now is ", num2, "<br />");
var num3 = str1 - 0;
// num3 now is 33.33
document.write("num3 now is ", num3, "<br />");
var num4 = parseInt(str1);
document.write("num4 now is ", num4, "<br />");
// num4 now is 33
var num5 = parseFloat(str1);
// num5 now is 33.33
document.write("num5 now is ", num5, "<br />");
</script>
- 11 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
var str="George";
str.length is 6
str.charAt(2) is 'o'
str.indexOf('r') is 3
str.substring(2, 4) is 'or'
str.toLowerCase() is 'george'
typeof الطريقة
:ة التالية، نمط متغير ما تمتين األمبtypeof يد،تم
typeof("George") is string
typeof(33) is number
typeof(true) is Boolean
var a; typeof(a) is undefined
typeof(b) is undefined (b is a not defined var(
اإلسناد
:تمستخد إشارة المساإلاة لإلسنار
a = a + 7;
a += 7;
Date الغرض
:ميمكن التصريح عن متغير تاريخ يأاذ التاريخ إلالوقت الحالي
var today = new Date)(;
: مجموعة من الطرقDate يوفر الغرض
toLocaleString, getDate, getMonth, getDay, getFullYear, getTime, getHours,
getMinutes, getSeconds, getMilliseonds.
- 12 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
اإلدخال واإلظهار
يقو مفس ا اار JavaScriptبتفيذ الت،،يمات حيبما يجدها ض ا اامن المس ا ااتند .XHTMLإلبالتالي فإم ش ا اااش ا ااة
اك هار الطتيعية لا JavaScriptهي نفسها شاشة إ هار مخرجات .XHTML
تمستخد الطريقة writeل،غرض documentب كل أساسي لخ،ق اطا ة ار .ما ميتين المباظ التالي:
;var a = 25
;)">document.write("The result is : <b> ", a, "</b> <br /
الغرض window
يوفر الغرض windowثالثة رق كن اء صناريق حوار بهدف التفاعل مع المستخد .
• الطريقة :alertتقو الطريقة alertبفتح نافذة حوارية إل; هار محتوى م،ام،ها فيها.
;var a = 25
;)"alert("The result is: " + a + "\n
- 13 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
• الطريقة :promptتقو الطريقة promptبإ هار نافذة حوارية تحوي ص ا ااندإلق نص ل ،تابة فيه.
إلت وم القيمة المرج،ة هي محتوى هذا النص إذا نقر المسا ا ا ا ااتخد ع،ى الزر ،OKإل nullإذا نقر
المستخد ع،ى الزر .Cancel
;)"" a = prompt("What is your name ?",
- 14 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
:مثال
: ب حدإلرها من المستخد، د،ارلة من الدرجة البانية ب،يقو المباظ التالي بحل م
<!DOCTYPE html >
<!-- roots.html
Compute the real roots of a given quadratic
equation. If the roots are imaginary, this script
displays NaN, because that is what results from
taking the square root of a negative number
-->
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<title> Real roots of a quadratic equation </title>
</head>
<body>
<script type = "text/javascript">
<!--
var question=true;
var a, b, c, root_part, denom, root1, root2;
while (question)
{
// Get the coefficients of the equation from the user
a = prompt("What is the value of 'a'? \n", "1");
b = prompt("What is the value of 'b'? \n", "");
c = prompt("What is the value of 'c'? \n", "");
// Compute the square root and denominator of the result
root_part = Math.sqrt(b * b - 4.0 * a * c);
denom = 2.0 * a;
// Compute and display the two roots
root1 = (-b + root_part) / denom;
root2 = (-b - root_part) / denom;
if (isNaN(root1))
{
alert("No real roots !");
question=confirm("Try another equation?");
}
else
{
document.write("The first root is: ", root1, "<br />");
- 15 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
- 16 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
تعليم ات التحكم
األهداف التعليمية
• الت،رف ع،ى ت،،يمات التحكم
- 17 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
تعليمات التحكم
تم اابه ت،،يمات JavaScriptت،،يمات لغة C++إل .Javaت وم الت،،يمات المر بة تسا،سال من الت،،يمات
المحا ة با { }.
التعابير المنطقية
ت وم نتيجة تقويم ت،تير منطقي القيمة trueأإل القيمة .falseيوجد ثالثة أنواع من الت،ابير المنطقية:
• القيم األساسية Primitive values
▪ إذا انت القيمة رقمية فهي تم،تتر trueمالم ت ن مساإلية ل،صفر
▪ إذا انت القيمة نصية تم،تتر trueمالم ت ن فارغة ..أإل .0.
• الت،ابير ال،ال قية Relational Expressions
▪ تستخد ال،القات الم،رإلفة == =! < > => =<
- 18 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
switch التعليمة
: ال كلswitch يمة،،تأاذ الت
switch (expression) {
case value_1:
// value_1 statements
case value_2:
// value_2 statements
…
[default:
// default statements]
}
:مثال
وي،اب من المسا ا ا ا ا ا ااتخاد إراااظ عرض اك اار المط،يتم الط
ّ حياثswitch ميتين المبااظ التاالي اسا ا ا ا ا ا ااتخادا
:لجدإلظ
<html xmlns = "http://www.w3.org/1999/xhtml">
<head> <title> A switch statement </title>
</head>
<body>
<script type = "text/javascript">
<!--
var bordersize;
bordersize = prompt("Select a table border size \n" +
"0 , 1, 2, 4, 8 \n","1" );
switch (bordersize) {
case "0": document.write("<table>");
break;
case "1": document.write("<table border = '1'>");
break;
case "4": document.write("<table border = '4'>");
break;
case "8": document.write("<table border = '8'>");
break;
default: document.write("Error - invalid choice: ",
bordersize, "<br />");
}
- 19 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
- 20 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
تعليمات التكرار
توفر لغة JavaScriptالت،،يمتين األساسيتين ل،ت رار whileإل .forيكوم ل،ت،،يمة whileال كل:
)while ( control expression
{
Statements
}
أإل ال كل:
do
{
statements
}
)while ( control expression
- 21 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
: ال كلfor يمة،،ت،يكوم ل
for (initial expression; control expression; increment expression)
{
statements
}
- 22 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
األهداف التعليمية
• المصفوفات
- 23 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
Arrays المصفوفات
أإل بإسا ا اانار عناصا ا اار المصا ا اافوفةnew يمة،، إما باسا ا ااتخدا التJavaScript ريف المصا ا اافوفات في،يتم ت
ّ
:ة التالية، ما تمتين األمب.مباشرة
:مثال
م األس ااماء مرتبة، نص اارل في التداية عن مص اافوفة تحوي ب.يوض ااح المباظ التالي اس ااتخدا المص اافوفات
ى الترتيب،ب من المس ا ااتخد إرااظ اس ا اام جديد إلنقو بإرراجه في المص ا اافوفة إلبحيث نحافظ ع، نط.ًأبجديا
.األبجدي
<!DOCTYPE html >
<html xmlns = "http://www.w3.org/1999/xhtml">
<head> <title> Name list </title>
</head>
<body>
<script type = "text/javascript">
<!--
// The original list of names
var name_list= new Array("Al", "Betty", "Kasper",
"Michael", "Roberto", "Zimbo");
var new_name, index, last;
// Loop to get a new name and insert it
while (new_name = prompt("Please type a new name", "")) {
// Loop to find the place for the new name
last = name_list.length - 1;
while (last >= 0 && name_list[last] > new_name) {
name_list[last + 1] = name_list[last];
last--;
}
// Insert the new name into its spot in the array
name_list[last + 1] = new_name;
- 24 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
Mozart
:د إضافة االسم الجديد في مكانه الصحيح،ثم يظهر المصفوفة الجديدة ب
- 25 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
:مثال
:امل مع المصفوفات،م رق الت،ميتين المباظ التالي ب
<script type="text/javaScript">
a = new Array("a", "b", "c", "d");
n = new Array(1, 2, 3);
an = a.concat(n);
document.write("a concat n= ", an, "<br />");
document.write("a.join(',') = ", a.join(","), "<br />");
document.write("a.slice(1,3) =", a.slice(1, 3), "<br />");
document.write("a.reverse() =", a.reverse(), "<br />");
<script>;
- 26 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
- 27 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
األهداف التعليمية
• الو ا
- 28 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
Functions الوظائف
.C في لغة شكل الو اJavaScript في • مي به شكل الو ا
.<head> ضمن المؤثر يتم التصريح عن الو ا
ّ •
حيث يتم تجاهل.امالت الممرة إلال من عدرها،يتم التحقق عند اسا ا ا ااتدعاء الو يفة من نمط المّ • ال
.undefined تتر،امالت الناقصة فتم، أما الم.امالت ال از دة،الم
ى ولها من الخاصا ا ااية، ميمكن الحصا ا ااوظ عarguments امالت عتر مصا ا اافوفة،يتم إرسا ا اااظ الم
ّ •
.length
:مثال
:arguments ميتين المباظ التالي استخدا المصفوفة
<html xmlns = "http://www.w3.org/1999/xhtml">
<head> <title> Parameters </title>
<script type = "text/javascript">
<!--
// Function params
// Parameters: two named parameters and one unnamed
// parameter, all numbers
// Returns: nothing
function params(a, b) {
document.write("Function params was passed ",
arguments.length, " parameter(s) <br />");
document.write("Parameter values are: <br />");
for (var arg = 0; arg < arguments.length; arg++)
document.write(arguments[arg], "<br />");
document.write("<br />");
}
// -->
</script>
</head>
<body>
<script type = "text/javascript">
params("Mozart");
params("Mozart", "Beethoven");
params("Mozart", "Beethoven", "Tchaikowsky");
</script>
</body>
- 29 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
></html
- 30 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
األهداف التعليمية
• مطابقة النماذ
- 31 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
- 32 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
• ميطابق المحرف المترفع ( ).أي محرف عدا الساطر الجديد .فمبالً ،ميطابق النموذ /snow./ل
من ( .snowy, snowe, snowdل مطابقة نقطة في سا ا ا اا،سا ا ا اا،ة نصا ا ا ااية يجب سا ا ا ااتق النقطة في
النموذ با \ ،فمبالً ،ميطابق النموذ \ \3\.4الس،س،ة النصية 3.4إلال يطابق .374
• عند إلض ا ا ا ااع مجموعة من األحرف ض ا ا ا اامن .فه ذا ي،ني أم المطابقة يجب أم تتم مع أحد هذم
الحرإلف .فمبالً ميطابق النموذ /[oi]n/ل من onإل.in
• ميمكن اسا ا ا ا ا ا ااتخادا المحرف ( )-لت،يين مجااظ من القيم .فمبالً / a-h / ،ت،ني أي محرف بين a
إل.h
• ميمكن اسا ا ا ا ااتخدا المحرف (م) ل،كس المحارف الم،ينة .فمبالً / ^abc /ت،ني أي محرف ما عدا
األحرف .a, b, c
فمبالً:
• ميطابق النموذ /\d\.\d\d/أي رقم ت،يه نقطة ي،يها رقمين.
• ميطابق النموذ /\D\d\D/رقم إلاحد.
• ميمكن في ال،ديد من الحاالت تحديد ت رار م،ين:
Quantifier Meaning
}{n exactly n repetitions
}{m, at least m repetitions
}{m, n at least m but not more than n repetitions
- 33 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
- 34 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
- 35 -
الفصل :4أساسيات لغة JavaScript مقرر برمجة الويب ()1
تحديد الموقع
ميمكن اسا ا ا ااتخدا المحرف (م) لتحديد أم موقع النموذ يجب أم يكوم بداية السا ا ا اا،سا ا ا اا،ة .أإل المحرف ()$
لتحديد أم النموذ يجب أم يكوم نهاية السا ا اا،سا ا اا،ة .فمبالً ،ميطابق النموذ /gold$/السا ا اا،سا ا اا،ة I like
”goldبينما ال ميطابق .”goldenذلك ميطابق النموذ /^pearl/الس ا ا ا اا،س ا ا ا اا،ة ”pearls are pretty
اليطابق "."My pearls are pretty
إل م
تعديل النماذج
ميمكن اسا ا ا ا ا ا ااتخادا المحرف ( )iلط،اب تجااهال حاالاة األحرف .فمبالً ،ميطاابق النموذ /ok/iال من OK,
.Ok, ok, oK
الطريقة replace
ميمكن اساتخدا الطريقة replaceالساتتداظ سا ،سا،ة جز ية بأارى .ما ميمكن اساتخدا المحرف ( )gلط،ب
االستتداظ ل ل هور ل،س،س،ة الجز ية.
مثال:
;"var str = "Some rabbits are rabid
;)"str = str.replace(/rab/g, "tim
;)">document.write("str is ",str ,"<br /
الطريقة match
تمستخد الطريقة matchكرجاع مصفوفة من السالسل الجز ية المطابقة ل،نموذ .
مثال:
;"var str = "My 3 kings beat your 2 aces
;)var matches = str.match(/[ab]/g
;)">document.write("matches is ", matches ,"<br /
تصبح قيمة matchesمساإلية إلى .b,a,a
- 36 -
JavaScript أساسيات لغة:4الفصل )1( مقرر برمجة الويب
split الطريقة
.ة إلى سالسل جز ية،س، بتجز ة السsplit تقو الطريقة
:مثال
var str = "red,green,blue";
var colors = str.split(",");
document.write("colors is ", colors,"<br />");
. red, green , blue مساإلية إلىcolors تصبح قيمة
- 37 -