Ø£ØÙØ§Ù ÙØ«Ùرة ÙØ±Ùد تÙÙÙØ° ÙÙØ³ Ø§ÙØ£Ùا٠ر Ù٠أ٠اÙ٠٠ختÙÙØ© Ù Ù Ø§ÙØ¨Ø±Ùا٠ج.
Ù Ø«ÙÙØ§ ÙØ±Ùد Ø¥Ø¸ÙØ§Ø± Ø±Ø³Ø§ÙØ© Ø¹ÙØ¯Ù ا ÙÙÙ٠اÙ٠ستخد٠بتسجÙÙ Ø§ÙØ¯Ø®ÙÙ Ø£Ù Ø§ÙØ®Ø±Ùج أ٠أ٠اÙ٠أخرÙ.
Ø§ÙØ¯Ùا٠ÙÙ ÙØØ¯Ø© Ø§ÙØ¨Ùاء Ø§ÙØ£Ø³Ø§Ø³ÙØ© ÙØ£Ù Ø¨Ø±ÙØ§Ù ج ÙÙ٠ت٠ÙÙÙØ§ ٠٠تÙÙÙØ° ÙÙØ³ Ø§ÙØ£Ùا٠ر Ù٠عدة أ٠اÙ٠دÙÙ ØªÙØ±Ø§Ø±.
ÙÙØ¯ رأÙÙØ§ Ù
Ù ÙØ¨Ù Ø§ÙØ¹Ø¯Ùد Ù
Ù Ø§ÙØ¯Ùا٠اÙÙ
دÙ
جة Ù٠اÙÙØºØ© Ù
ث٠alert(message), prompt(message, default) Ù confirm(question). ÙÙÙÙ ÙÙ
ÙÙÙØ§ Ø¥ÙØ´Ø§Ø¡ Ø§ÙØ¯ÙØ§Ù Ø§ÙØ®Ø§ØµØ© Ø¨ÙØ§.
Function Declaration
ÙØ¥Ùشاء Ø¯Ø§ÙØ© ÙØ³ØªØ®Ø¯Ù function declaration.
Ù Ø«Ù ÙØ°Ø§:
function showMessage() {
alert("Ù
Ø±ØØ¨Ùا Ø¨Ø§ÙØ¬Ù
ÙØ¹");
}
ÙÙÙ
Ø© function ØªÙØªØ¨ Ø£ÙÙØ§ Ø«Ù
ÙÙØªØ¨ اسÙ
Ø§ÙØ¯Ø§ÙØ© Ø«Ù
ÙØ§Ø¦Ù
Ø© parameters بÙ٠اÙÙÙØ³ÙÙ (ÙÙØµÙ بÙÙÙÙ
Ø¨ÙØ§ØµÙØ© ÙÙÙ ÙØ§Ø±ØºØ© Ù٠اÙÙ
Ø«Ø§Ù Ø§ÙØ³Ø§Ø¨Ù) ÙØ£Ø®Ùرا اÙÙÙØ¯ Ø§ÙØ°Ù ÙÙÙØ° ÙÙØ³Ù
Ù âthe function bodyâ Ø¨Ù٠اÙÙÙØ³Ù٠اÙÙ
عÙÙÙÙÙ.
function name(parameters) {
...body...
}
ÙÙ
ÙÙÙØ§ استدعاء Ø¯Ø§ÙØªÙا Ø§ÙØ¬Ø¯Ùدة ع٠طرÙ٠اسÙ
ÙØ§: showMessage().
For instance:
function showMessage() {
alert( 'Ù
Ø±ØØ¨Ùا Ø¨Ø§ÙØ¬Ù
ÙØ¹' );
}
showMessage();
showMessage();
استدعاء showMessage() ÙÙÙÙ
بتÙÙÙØ° اÙÙÙØ¯ ÙØªØ¸Ùر ÙÙØ§ Ø§ÙØ±Ø³Ø§ÙØ© Ù
رتÙÙ.
ÙØ°Ø§ اÙ٠ثا٠ÙÙØ¶Ø اÙÙØ¯Ù Ø§ÙØ£Ø³Ø§Ø³Ù ÙÙØ¯Ùا٠ÙÙÙ ØªØ¬ÙØ¨ ØªÙØ±Ø§Ø± اÙÙÙØ¯.
إذا Ø£Ø±Ø¯ÙØ§ تغÙÙØ± Ø§ÙØ±Ø³Ø§ÙØ© Ø§ÙØªÙ تعرض سÙÙÙÙ ÙØ§ÙÙÙØ§ تغÙÙØ± اÙÙÙØ¯ ÙÙ Ù ÙØ§Ù ÙØ§ØØ¯ ÙÙØ· ÙÙÙ Ø§ÙØ¯Ø§ÙØ© Ø§ÙØªÙ تعرض ÙØ±Ø³Ø§ÙØ©.
اÙÙ ØªØºÙØ±Ø§Øª اÙÙ ØÙÙØ©
اÙÙ ØªØºÙØ± Ø§ÙØ°Ù ÙØ¹Ø±Ù Ø¯Ø§Ø®Ù Ø¯Ø§ÙØ© ÙÙÙÙ Ù ØªØ§Ø Ø¯Ø§Ø®Ù ÙØ°Ù Ø§ÙØ¯Ø§ÙØ© ÙÙØ·
Ù Ø«ÙÙØ§:
function showMessage() {
let message = "Hello, I'm JavaScript!"; // local variable
alert( message );
}
showMessage(); // Hello, I'm JavaScript!
alert( message ); // <-- خطأ! اÙÙ
ØªØºÙØ± Ù
ØªØ§Ø ÙÙØ· Ø¯Ø§Ø®Ù Ø§ÙØ¯Ø§ÙØ©
اÙÙ ØªØºÙØ±Ø§Øª Ø§ÙØ®Ø§Ø±Ø¬ÙØ©
ÙÙ ÙÙ ÙÙØ¯Ø§ÙØ© اÙÙØµÙÙ ÙÙÙ ØªØºÙØ±Ø§Øª Ø®Ø§Ø±Ø¬ÙØ§ Ù Ø«Ù:
let userName = 'John';
function showMessage() {
let message = 'Hello, ' + userName;
alert(message);
}
showMessage(); // Hello, John
Ø§ÙØ¯Ø§ÙØ© ÙØ¯ÙÙØ§ ÙØµÙÙ ÙØ§Ù Ù ÙÙÙ ØªØºÙØ±Ø§Øª Ø®Ø§Ø±Ø¬ÙØ§ ÙÙÙ ÙÙÙØ§ Ø£ÙØ¶Ùا Ø§ÙØªØ¹Ø¯Ù٠عÙÙÙÙ .
Ù Ø«ÙÙØ§:
let userName = 'John';
function showMessage() {
userName = "Bob"; // (1) تغÙÙØ± ÙÙÙ
Ø© اÙÙ
ØªØºÙØ± Ø§ÙØ®Ø§Ø±Ø¬Ù
let message = 'Hello, ' + userName;
alert(message);
}
alert( userName ); // John ÙØ¨Ù استدعاء Ø§ÙØ¯Ø§ÙØ©
showMessage();
alert( userName ); // Bob تÙ
تغÙÙØ± اÙÙ
ØªØºÙØ± Ø¨ÙØ§Ø³Ø·Ø© Ø§ÙØ¯Ø§ÙØ©
ÙØªÙ استخدا٠اÙÙ ØªØºÙØ± Ø§ÙØ®Ø§Ø±Ø¬Ù ÙÙØ· إذا ÙÙ ÙÙØ¬Ø¯ Ù ØªØºÙØ± Ù ØÙÙ.
إذا تÙ
عÙ
Ù Ù
ØªØºÙØ± Ù
ØÙ٠بÙÙØ³ Ø§ÙØ§Ø³Ù
ÙÙØªÙ
استخداÙ
٠بدÙÙØ§ Ù
Ù Ø§ÙØ®Ø§Ø±Ø¬Ù ÙØ¹Ù٠سبÙ٠اÙÙ
Ø«Ø§Ù Ø§ÙØ¯Ø§ÙØ© Ø§ÙØªØ§ÙÙØ© ستستخدÙ
اÙÙ
ØªØºÙØ± اÙÙ
ØÙÙ userName ÙØªØªØ¬Ø§Ù٠اÙÙ
ØªØºÙØ± Ø§ÙØ®Ø§Ø±Ø¬Ù:
let userName = 'John';
function showMessage() {
let userName = "Bob"; // تعرÙÙ Ù
ØªØºÙØ± Ù
ØÙÙ
let message = 'Hello, ' + userName; // Bob
alert(message);
}
// ستÙÙÙ
Ø§ÙØ¯Ø§ÙØ© بعÙ
Ù ÙØ§Ø³ØªØ®Ø¯Ø§Ù
userName Ø§ÙØ®Ø§Øµ Ø¨ÙØ§
showMessage();
alert( userName ); // John, ÙÙ
ÙØªØºÙر, Ø§ÙØ¯Ø§ÙØ© Ù٠تص٠ÙÙÙ
ØªØºÙØ± Ø§ÙØ®Ø§Ø±Ø¬Ù
اÙÙ
ØªØºÙØ±Ø§Øª Ø§ÙØªÙ تعر٠خارج Ø£Ù Ø¯Ø§ÙØ© Ù
ث٠اÙÙ
ØªØºÙØ± Ø§ÙØ®Ø§Ø±Ø¬Ù userName Ù٠اÙÙ
Ø«Ø§Ù Ø§ÙØ³Ø§Ø¨Ù تسÙ
Ù global.
اÙÙ ØªØºÙØ±Ø§Øª Ø§ÙØ¹Ø§ÙÙ ÙØ© ÙÙ ÙÙ Ø§Ø³ØªØ®Ø¯Ø§Ù ÙØ§ Ø¨ÙØ§Ø³Ø·Ø© Ø£Ù Ø¯Ø§ÙØ© (إذا ÙÙ ÙØªÙ ØªØ¹Ø±Ù Ù ØªØºÙØ± Ù ØÙ٠بÙÙØ³ Ø§ÙØ§Ø³Ù ).
Ù Ù Ø§ÙØ£ÙØ¶Ù Ø§ÙØªÙÙÙ٠٠٠اÙÙ ØªØºÙØ±Ø§Øª Ø§ÙØ¹Ø§ÙÙ ÙØ©. ÙÙØªÙ تعرÙ٠اÙÙ ØªØºÙØ±Ø§Øª ÙÙ Ø§ÙØ¯ÙØ§Ù Ø§ÙØ®Ø§ØµØ© Ø¨ÙØ§. عÙÙ Ø§ÙØ±ØºÙ ٠٠أ٠اÙÙ ØªØºÙØ±Ø§Øª Ø§ÙØ¹Ø§ÙÙ ÙØ© Ù ÙÙØ¯Ø© ÙØªØ®Ø²ÙÙ Ø§ÙØ¨ÙØ§ÙØ§Øª ÙØ§Ø³ØªØ®Ø¯Ø§Ù ÙØ§ عÙ٠٠ستÙ٠اÙÙ Ø´Ø±ÙØ¹ ÙÙÙ.
Parameters
ÙÙ ÙÙÙØ§ ØªÙ Ø±ÙØ± Ø£Ù ÙÙ٠إÙÙ Ø§ÙØ¯Ø§ÙØ© باستخدا٠parameters (Ø£ÙØ¶Ùا تس٠٠function arguments) .
ÙÙ ÙØ°Ø§ اÙÙ
Ø«Ø§Ù Ø§ÙØ¯Ø§ÙØ© ÙØ¯ÙÙØ§ Ù
عاÙ
ÙÙÙ: from Ù text.
function showMessage(from, text) { // arguments: from, text
alert(from + ': ' + text);
}
showMessage('Ann', 'Hello!'); // Ann: Hello! (*)
showMessage('Ann', "What's up?"); // Ann: What's up? (**)
Ø¹ÙØ¯ استدعاء Ø§ÙØ¯Ø§ÙØ© ÙÙ Ø§ÙØ³Ø·Ø± (*) Ù (**) ÙØ¥Ù اÙÙÙÙ
اÙÙ
Ù
ررة ØªÙØ³Ø® Ø¥Ù٠اÙÙ
ØªØºÙØ±Ø§Øª اÙÙ
ØÙÙØ© from Ù text. Ø«Ù
تÙÙÙ
Ø§ÙØ¯Ø§ÙØ© باستخداÙ
ÙÙ
.
ÙÙØ§ Ù
ثا٠آخر ØÙØ« ÙØ¯ÙÙØ§ اÙÙ
ØªØºÙØ± from ÙÙÙ
ÙØ§ بتÙ
Ø±ÙØ±Ù Ø¥ÙÙ Ø§ÙØ¯Ø§ÙØ©. ÙØ§ØØ¸ Ø£Ù Ø§ÙØ¯Ø§ÙØ© ÙØ§Ù
ت بتغÙÙØ± ÙÙÙ
Ø© from ÙÙÙÙ Ø§ÙØªØºÙÙØ± ÙØ§ ÙØ¤Ø«Ø± Ù٠اÙÙ
ØªØºÙØ± اÙÙ
Ù
رر ÙØ£Ù Ø§ÙØ¯Ø§ÙØ© ØªØØµÙ عÙÙ ÙØ³Ø®Ø© Ù
٠اÙÙÙÙ
Ø©:
function showMessage(from, text) {
from = '*' + from + '*'; // make "from" look nicer
alert( from + ': ' + text );
}
let from = "Ann";
showMessage(from, "Hello"); // *Ann*: Hello
// ÙÙÙ
Ø© "from" تظ٠ÙÙ
ا ÙÙ ÙØ£Ù Ø§ÙØ¯Ø§ÙØ© ÙØ§Ù
ت Ø¨Ø§ÙØªØ¹Ø¯Ù٠عÙÙ Ù
ØªØºÙØ±Ùا اÙÙ
ØÙÙ
alert( from ); // Ann
اÙÙÙÙ Ø§ÙØ¥ÙØªØ±Ø§Ø¶ÙØ©
إذا ÙÙ
ÙØªÙ
تÙ
Ø±ÙØ± ÙÙÙ
Ø© Parameter ÙØ£Ø®Ø° اÙÙÙÙ
Ø© undefined.
عÙ٠سبÙ٠اÙÙ
ثا٠اÙÙÙÙØ´Ù Ø§ÙØ³Ø§Ø¨ÙØ© showMessage(from, text) ÙÙ
ÙÙ Ø§Ø³ØªØ¯Ø¹Ø§Ø¦ÙØ§ ÙØªÙ
Ø±ÙØ± ÙÙÙ
Ø© ÙØ§ØØ¯Ø© ÙÙØ·:
showMessage("Ann");
ÙØ°Ø§ ÙÙØ³ خطأ ÙÙÙ٠سÙÙØªØ¬ "Ann: undefined". ÙÙ
ÙØªÙ
تÙ
Ø±ÙØ± text ÙØ°ÙÙ ÙØªÙ
Ø§ÙØªØ±Ø§Ø¶ Ø£Ù text === undefined.
إذا أردت ØªØ®ØµÙØµ ÙÙÙ
Ø© Ø¥ÙØªØ±Ø§Ø¶ÙØ© Ù text ÙÙ
ÙÙ ÙØ¶Ø¹Ùا بعد =:
function showMessage(from, text = "no text given") {
alert( from + ": " + text );
}
showMessage("Ann"); // Ann: no text given
إذا ÙÙ
ÙØªÙ
تÙ
Ø±ÙØ± ÙÙÙ
Ø© text Ø³ÙØªÙ
إعطائ٠اÙÙÙÙ
Ø© "no text given"
ÙÙØ§ استخدÙ
ÙØ§ اÙÙØµ "no text given" ÙÙÙÙ ÙÙ
Ù٠أ٠تÙÙ٠اÙÙÙÙ
Ø© Ù
Ø¹ÙØ¯Ø© Ø£ÙØ«Ø± Ù
Ù:
function showMessage(from, text = anotherFunction()) {
// anotherFunction() Ø³ÙØªÙ
تÙÙÙØ°Ùا ÙÙØ· إذا ÙÙ
ÙØØ¯Ø¯ ÙÙÙ
Ø©
// ÙÙØ§ØªØ¬Ùا سÙÙØ¶Ø¹ ÙÙÙÙ
Ø© ÙÙÙ
ØªØºÙØ± text
}
ÙÙ Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت ÙØªÙ تÙÙÙØ° اÙÙÙÙ Ø§ÙØ¥ÙØªØ±Ø§Ø¶ÙØ© ÙÙ Ù٠٠رة ÙØªÙ استدعاء Ø§ÙØ¯Ø§ÙØ© دÙÙ ØªÙ Ø±ÙØ± ÙÙÙ Ø©.
Ù٠اÙÙ
Ø«Ø§Ù Ø§ÙØ³Ø§Ø¨Ù Ø³ÙØªÙ
تÙÙÙØ° anotherFunction() ÙÙ ÙÙ Ù
رة ÙØªÙ
استدعا showMessage() دÙ٠تÙ
Ø±ÙØ± ÙÙÙ
Ø© text.
بدÙ٠اÙÙÙÙ Ø§ÙØ¥ÙØªØ±Ø§Ø¶ÙØ©
Ø£ØÙØ§ÙØ§ ÙØ±ÙØ¯ØªØØ¯Ùد ÙÙÙ Ø© ÙØ¥ÙØªØ±Ø§Ø¶ÙØ© ÙÙÙÙ ÙÙØ³ Ù٠تعرÙÙ Ø§ÙØ¯Ø§ÙØ© ب٠ÙÙ ÙÙØª ÙØ§ØÙ Ø£Ø«ÙØ§Ø¡ Ø§ÙØªÙÙÙØ°.
ÙÙ
Ø¹Ø±ÙØ© اÙÙ
ØªØºÙØ± Ø§ÙØ°Ù ÙÙ
ÙÙ
رر ÙÙÙ
ت٠ÙÙ
ÙÙÙØ§ Ù
ÙØ§Ø±Ùت٠Ù
ع undefined:
function showMessage(text) {
if (text === undefined) {
text = 'empty message';
}
alert(text);
}
showMessage(); // empty message
â¦Ø£Ù ÙØ³ØªØ®Ø¯Ù
Ø§ÙØ¹Ø§Ù
Ù ||:
// إذا ÙÙ
ÙØªÙ
تÙ
Ø±ÙØ± ÙÙÙ
Ø© text أ٠تÙ
تÙ
Ø±ÙØ± "" ÙØ¬Ø¹Ù ÙÙÙ
ت٠'empty'
function showMessage(text) {
text = text || 'empty';
...
}
Ù
ØØ±Ùات Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت Ø§ÙØØ¯ÙØ«Ø© تدعÙ
nullish coalescing operator ??ÙÙÙØ£Ùض٠ÙÙ Ø§ÙØªØ¹Ø§Ù
Ù Ù
ع falsy values Ù
ث٠0:
// إذا ÙÙ
ÙÙØ¬Ø¯ ÙÙÙ
Ø© "count" ÙØ¹Ø±Ø¶ "unknown"
function showCount(count) {
alert(count ?? "unknown");
}
showCount(0); // 0
showCount(null); // unknown
showCount(); // unknown
إرجاع ÙÙÙ Ø©
ÙÙ ÙÙ ÙÙØ¯Ø§ÙØ© إرجاع ÙÙÙ Ø© ÙÙØ§ØªØ¬ ÙÙØ§.
أبسط ٠ثا٠ÙÙ Ø¯Ø§ÙØ© تÙÙ٠بج٠ع رÙÙ ÙÙ:
function sum(a, b) {
return a + b;
}
let result = sum(1, 2);
alert( result ); // 3
ÙÙÙ
Ø© return ÙÙ
Ù٠أ٠تÙÙÙ Ù٠أ٠Ù
ÙØ§Ù Ù٠اÙÙÙØ¯ ÙØ¹Ùد اÙÙØµÙÙ ÙÙØ§ تتÙÙÙ Ø§ÙØ¯Ø§ÙØ© ÙØªØ±Ø¬Ø¹ اÙÙÙÙ
Ø© اÙÙ
ØØ¯Ø¯Ø© Ø¥ÙÙ Ù
ÙØ§Ù Ø§ÙØ§Ø³ØªØ¯Ø¹Ø§Ø¡ (ÙØ¶Ø¹Øª Ù٠اÙÙ
ØªØºÙØ± result Ø¨Ø§ÙØ£Ø¹ÙÙ).
ÙÙ
ÙÙ ØØ¯ÙØ« Ø£ÙØ«Ø± Ù
Ù return ÙÙ ÙÙØ³ Ø§ÙØ¯Ø§ÙØ©:
function checkAge(age) {
if (age >= 18) {
return true;
} else {
return confirm('Do you have permission from your parents?');
}
}
let age = prompt('How old are you?', 18);
if ( checkAge(age) ) {
alert( 'Access granted' );
} else {
alert( 'Access denied' );
}
ÙÙ
Ù٠استخداÙ
return بدÙÙ ÙÙÙ
Ø© Ø¹ÙØ¯Ù
ا ÙØ±Ùد Ø¥ÙÙØ§Ù Ø§ÙØ¯Ø§ÙØ© ÙÙ Ø§ÙØØ§Ù.
Ù Ø«ÙÙØ§:
function showMovie(age) {
if ( !checkAge(age) ) {
return;
}
alert( "Showing you the movie" ); // (*)
// ...
}
Ù٠اÙÙ
Ø«Ø§Ù Ø¨Ø§ÙØ£Ø¹Ù٠إذا ÙØ§Ùت checkAge(age) ترجع false Ø¹ÙØ¯Ùا showMovie Ù٠تÙÙ
٠إÙÙ alert.
``smart header=âØ§ÙØ¯Ø§ÙØ© Ø§ÙØªÙ ÙØ¯ÙÙØ§ return ÙØ§Ø±ØºØ© Ø£Ù ÙÙØ³ ÙØ¯ÙÙØ§ ترجع undefinedâ
إذا ÙØ§Ùت Ø§ÙØ¯Ø§ÙØ© ÙØ§ ترجع ÙÙÙ
Ø© ÙÙØ£ÙÙØ§ ترجع undefined:
function doNothing() {
/* empty */
}
alert(doNothing() === undefined); // true
استخداÙ
return ÙØ§Ø±ØºØ© ÙÙ Ø£ÙØ¶Ùا Ù
ث٠return undefined:
function doNothing() {
return;
}
alert(doNothing() === undefined); // true
````warn header="ÙØ§ تضع سطر Ø¬Ø¯ÙØ¯ بÙÙ `return` ÙØ§ÙÙÙÙ
Ø©"
إذا Ø§Ø±Ø¯ÙØ§ استخداÙ
ØªØ¹Ø¨ÙØ± Ø·ÙÙÙ Ù
ع `return` سÙÙÙÙ Ù
Ù Ø§ÙØ£ÙØ¶Ù ÙØ¶Ø¹Ù Ù٠سطر Ø¬Ø¯ÙØ¯:
```js
return
(some + long + expression + or + whatever * f(a) + f(b))
```
ÙØ°Ø§ ÙÙ ÙØ¹Ù
Ù ÙØ£Ù Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت Ø³ØªÙØªØ±Ø¶ ÙØ¬Ùد ÙØ§ØµÙØ© Ù
ÙÙÙØ·Ø© بعد `return`. ÙÙØ°Ø§ ÙØ·Ø§Ø¨Ù:
```js
return;
(some + long + expression + or + whatever * f(a) + f(b))
```
ÙØ¨Ùذا Ø³ÙØµØ¨Ø return ÙØ§Ø±ØºØ©.
إذا Ø£Ø±Ø¯ÙØ§ استخداÙ
ØªØ¹Ø¨ÙØ± Ø·ÙÙÙ Ù٠سطر Ø¬Ø¯ÙØ¯ ÙØ¬Ø¨ ÙØ¶Ø¹ Ø¨Ø¯Ø§ÙØªÙ ÙÙ ÙÙØ³ Ø§ÙØ³Ø·Ø± Ù
ع `return`. Ø£Ù ÙØ¶Ø¹Ù بÙÙ ÙÙØ³ÙÙ ÙØ§ÙآتÙ:
```js
return (
some + long + expression
+ or +
whatever * f(a) + f(b)
)
```
ÙØ³ÙعÙ
Ù ÙÙ
ا ÙÙ Ù
تÙÙØ¹.
ØªØ³Ù ÙØ© Ø§ÙØ¯Ø§ÙØ©
Ø§ÙØ¯Ùا٠ÙÙ Ø£ÙØ¹Ø§Ù. ÙÙØ°Ø§ ÙÙÙ Ø§ÙØºØ§Ùب ÙÙÙÙ Ø§Ø³Ù ÙØ§ عبارة Ø¹Ù ÙØ¹Ù. ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ù Ø®ØªØµØ±ÙØ§ ÙÙÙØ¶Ø Ø¨ÙØ¯Ø± Ø§ÙØ¥Ù ÙØ§Ù ٠ا ØªÙØ¹ÙÙ Ø§ÙØ¯Ø§ÙØ© ÙÙÙ ÙÙ ÙØ£Ù Ø£ØØ¯ ÙÙØ±Ø£ اÙÙÙØ¯ Ø£Ù ÙØ¹Ø±Ù ÙØ¸ÙÙØ© Ø§ÙØ¯Ø§ÙØ© بسÙÙÙØ©.
Ù Ù Ø§ÙØ´Ø§Ø¦Ø¹ Ø£Ù ÙØ¨Ø¯Ø£ Ø§Ø³Ù Ø§ÙØ¯Ø§ÙØ© بÙÙÙ Ø© ØªÙØµÙ اÙÙØ¹Ù ÙÙØ¬Ø¨ Ø£Ù ÙØªÙ Ø§ÙØ¥ØªÙا٠عÙÙ ÙØ°Ù اÙÙÙ٠ات بÙ٠أعضاء اÙÙØ±ÙÙ.
عÙ٠سبÙ٠اÙÙ
Ø«Ø§Ù ÙØ§ÙØ¯ÙØ§Ù Ø§ÙØªÙ تبدأ بÙÙÙ
Ø© "show" ÙÙÙ ÙÙ Ø§ÙØºØ§Ùب تعرض شئ Ù
عÙÙ.
Function starting withâ¦
"getâ¦"â ØªØ±Ø¬Ø¹ ÙÙÙ Ø©,"calcâ¦"â ØªØØ³Ø¨ شئ ٠ا,"createâ¦"â ØªÙشئ شئ ٠ا,"checkâ¦"â ØªØ®ØªØ¨Ø± ÙÙÙ Ø© ٠ا ÙØªØ±Ø¬Ø¹ ÙÙÙ Ø© Ù ÙØ·ÙÙØ©.
Ø£Ù Ø«ÙØ©:
showMessage(..) // shows a message
getAge(..) // returns the age (gets it somehow)
calcSum(..) // calculates a sum and returns the result
createForm(..) // creates a form (and usually returns it)
checkPermission(..) // checks a permission, returns true/false
Ø§Ø³ØªØ®Ø¯Ø§Ù ÙØ°Ù اÙÙÙ٠ات ÙØ¹Ø·Ù ÙÙØ±Ø© ع٠٠ا ØªÙØ¹ÙÙ Ø§ÙØ¯Ø§ÙØ© Ù٠ا ÙÙØªØ¬ عÙÙØ§.
ÙØ¬Ø¨ أ٠تÙÙÙ Ø§ÙØ¯Ø§ÙØ© بع٠٠شئ ÙØ§ØØ¯ ÙÙØ· ÙØ§ Ø£ÙØ«Ø± ÙÙØµÙÙ Ø§Ø³Ù ÙØ§.
اÙÙØ¹ÙÙÙ Ø§ÙØºÙر ٠عت٠دÙ٠عÙ٠بعضÙ٠ا ÙØªÙ ÙØ¶Ø¹ ÙÙ Ù ÙÙ٠ا ÙÙ Ø¯Ø§ÙØ© Ù ÙÙØµÙØ© ØØªÙ ÙÙ Ø³ÙØªÙ Ø§Ø³ØªØ¯Ø¹Ø§Ø¦ÙØ§ ٠ع بعضÙ٠ا (ÙÙ ÙØ°Ù Ø§ÙØØ§ÙØ© ÙÙ ÙÙ Ø¹Ù Ù Ø¯Ø§ÙØ© Ø«Ø§ÙØ«Ø© تستدعÙÙ٠ا).
Ø£Ù Ø«ÙØ©:
getAgeâ Ù٠تÙÙÙ Ø¬ÙØ¯Ø© إذا ÙØ§Ùت تعرضalertØ¨Ù Ø§ÙØ¹Ù ر (ÙÙØ· ÙØØµÙ Ø¹Ù٠اÙÙÙÙ Ø© Ù ÙÙØ§).createFormâ Ù٠تÙÙÙ Ø¬ÙØ¯Ø© إذا ÙØ§Ùت تÙÙ٠بتعدÙÙ Ø§ÙØµÙØØ© ÙØ¥Ø¶Ø§ÙØ© Ø§ÙØ§Ø³ØªÙ ارة ÙÙØ§ (ÙÙØ· ØªÙØ´Ø¦Ùا ÙØªØ±Ø¬Ø¹Ùا).checkPermissionâ Ù٠تÙÙÙ Ø¬ÙØ¯Ø© إذا ÙØ§Ùت تعرض Ø±Ø³Ø§ÙØ©access granted/deniedmessage (ÙÙØ· ØªÙØØµ ÙØªØ±Ø¬Ø¹ اÙÙØ§ØªØ¬).
ÙÙ ÙØ°Ù Ø§ÙØ£Ù Ø«ÙØ© ØªÙØªØ±Ø¶ اÙ٠عÙ٠اÙÙ ÙØªØ´Ø± ÙÙÙÙÙ Ø© اÙ٠ستخد٠ة. ÙÙ ÙÙÙ Ø£ÙØª ÙÙØ±ÙÙÙ Ø§ÙØ§ØªÙا٠عÙ٠اÙ٠عاÙÙ ÙØ§ÙÙÙ٠ات Ø§ÙØªÙ ØªØ±ÙØ¯ÙÙ ÙÙÙÙ ÙÙ ÙÙÙÙ ÙÙØ§Ù Ø£Ù Ø¥Ø®ØªÙØ§Ù ÙÙÙ Ø£Ù ØØ§ÙØ© ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ ÙØ¯ÙÙ Ù Ø¹Ø±ÙØ© ب٠ع٠اÙÙÙÙ Ø© اÙ٠ستخد٠ة Ù٠ا ÙÙ ÙÙ ÙÙØ¯Ø§ÙØ© Ø£Ù ØªÙØ¹ÙÙ Ù٠ا ÙØ§ ÙÙ ÙÙÙØ§ ÙØ¹ÙÙ.
Ø§ÙØ¯ÙØ§Ù Ø§ÙØªÙ ØªØ³ØªØ®Ø¯Ù Ø¨ÙØ«Ø±Ø© ØºØ§ÙØ¨Ùا ÙØªÙ Ø¥Ø¹Ø·Ø§Ø¦ÙØ§ Ø§Ø³Ù ÙØµÙر.
عÙ٠سبÙ٠اÙÙ
ثا٠Ù
ÙØªØ¨Ø© jQuery ØªØ¹Ø±Ù Ø¯Ø§ÙØ© اسÙ
ÙØ§ $. ÙÙ
ÙØªØ¨Ø© Lodash ÙØ¯ÙÙØ§ Ø¯Ø§ÙØ© اسÙ
ÙØ§ _.
ÙØ°Ù ٠جرد Ø§Ø³ØªØ«ÙØ§Ø¡Ø§Øª ÙÙÙ Ø§ÙØ¹Ù ÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø§Ø³Ù Ø§ÙØ¯Ø§ÙØ© Ù Ø¹Ø¨Ø±ÙØ§.
Ø§ÙØ¯Ùا٠== تعÙÙÙØ§Øª
Ø§ÙØ¯ÙØ§Ù ÙØ¬Ø¨ أ٠تÙÙÙ ÙØµÙرة ÙØªÙع٠شئ ÙØ§ØØ¯ ÙÙØ·. إذا ÙØ§Ùت Ø§ÙØ¯Ø§ÙØ© تÙÙ٠بع٠ÙÙØ§Øª ÙØ«Ùرة ÙØªÙÙÙØ° ع٠ÙÙØ§ ÙÙ Ù Ø§ÙØ£ÙØ¶Ù ØªÙØ³ÙÙ ÙØ§ Ø¥Ù٠٠ج٠ÙÙØ© Ø¯ÙØ§Ù أصغر. ÙØ°Ø§ ÙÙØ³ سÙÙÙØ§ ÙÙÙÙÙ Ø§ÙØ£ÙضÙ.
Ø§ÙØ¯Ø§ÙØ© اÙÙ ÙØ³Ù Ø© ÙÙØ³Øª ÙÙØ· أسÙÙ ÙÙ Ø§ÙØ¥Ø®ØªØ¨Ø§Ø± ÙØ§ÙØªØ´Ø§Ù Ø§ÙØ£Ø®Ø·Ø§Ø¡ â ÙÙÙÙÙØ§ Ø£ÙØ¶Ùا تعتبر تعÙÙ٠عظÙÙ !
عÙ٠سبÙ٠اÙÙ
Ø«Ø§Ù ÙØ§Ø±Ù Ø§ÙØ¯Ø§ÙتÙÙ showPrimes(n) Ø¨Ø§ÙØ£Ø³ÙÙ. ÙÙ Ù
ÙÙÙ
ا تعرض Ø£Ø±ÙØ§Ù
Ø£ÙÙÙØ© ØØªÙ n.
Ø§ÙØ£ÙÙ٠تستخد٠عÙÙØ§Ù:
function showPrimes(n) {
nextPrime: for (let i = 2; i < n; i++) {
for (let j = 2; j < i; j++) {
if (i % j == 0) continue nextPrime;
}
alert(i); // a prime
}
}
Ø§ÙØ«Ø§ÙÙØ© تستخدÙ
Ø¯Ø§ÙØ© Ù
ÙÙØµÙØ© اسÙ
ÙØ§ isPrime(n) ÙÙ
Ø¹Ø±ÙØ© إذا ÙØ§Ùت اÙÙÙÙ
Ø© Ø£ÙÙÙØ©:
function showPrimes(n) {
for (let i = 2; i < n; i++) {
if (!isPrime(i)) continue;
alert(i); // a prime
}
}
function isPrime(n) {
for (let i = 2; i < n; i++) {
if ( n % i == 0) return false;
}
return true;
}
Ø§ÙØ«Ø§ÙÙØ© ÙÙ Ø§ÙØ£Ø³ÙÙ Ù٠اÙÙÙÙ
Ø£ÙÙØ³ ÙØ°ÙÙ Ø ÙØ¨Ø¯ÙÙØ§ Ù
Ù Ø§ÙØ£ÙاÙ
ر ÙØÙ ÙØ±Ù اسÙ
Ø§ÙØØ¯Ø«Ø« (isPrime). بعض اÙÙØ§Ø³ ÙØ³Ù
ÙÙ ÙØ°Ø§ اÙÙÙØ¯ self-describing.
إذا ÙÙ ÙÙ Ø¹Ù Ù Ø§ÙØ¯ÙØ§Ù ØØªÙ ÙÙ ÙÙ ÙÙÙ Ø³ÙØ³ØªØ®Ø¯Ù ÙØ§ ٠رات Ø¹Ø¯ÙØ¯Ø© ÙÙ٠تجع٠اÙÙÙØ¯ Ù ÙØ±ÙØ¡ Ø£ÙØ«Ø±.
Ø§ÙØ®Ùاصة
تعرÙÙ Ø§ÙØ¯Ø§ÙØ© ÙÙÙÙ ÙØ§ÙتاÙÙ:
function name(parameters, delimited, by, comma) {
/* code */
}
- اÙÙÙ٠اÙ٠٠رة Ø¥ÙÙ Ø§ÙØ¯Ø§ÙØ© ÙØªÙ ÙØ³Ø®Ùا Ø¥ÙÙ Ù ØªØºÙØ±Ø§ØªÙا اÙÙ ØÙÙØ©.
- ÙÙ ÙÙ ÙÙØ¯Ø§ÙØ© اÙÙØµÙÙ ÙÙÙ ØªØºÙØ±Ø§Øª Ø®Ø§Ø±Ø¬ÙØ§ ÙÙÙÙ ÙØ§ ÙÙ ÙÙ ÙÙÙÙØ¯ Ø¨Ø§ÙØ®Ø§Ø±Ø¬ Ø£Ù ÙØµÙ Ø¥Ù٠اÙÙ ØªØºÙØ±Ø§Øª اÙÙ ØÙÙØ© Ø¯Ø§Ø®Ù Ø¯Ø§ÙØ©.
- ÙÙ
ÙÙ ÙÙØ¯Ø§ÙØ© إرجاع ÙÙÙ
Ø© ÙØ¥Ø°Ø§ ÙÙ
ØªÙØ¹Ù ÙÙÙÙÙ ÙØ§ØªØ¬Ùا
undefined.
ÙØ¬Ø¹Ù اÙÙÙØ¯ Ø£ÙØ¶Ù ÙØ£Ø³ÙÙ ÙÙØµØ باستخدا٠اÙÙ ØªØºÙØ±Ø§Øª اÙÙ ØÙÙØ© ÙØªØ¬Ø¨Ù استخدا٠اÙÙ ØªØºÙØ±Ø§Øª Ø§ÙØ®Ø§Ø±Ø¬ÙØ©.
Ù Ù Ø§ÙØ³ÙÙ ÙÙÙ Ø§ÙØ¯ÙØ§Ù Ø§ÙØªÙ ØªØØµÙ عÙÙ ÙÙÙ ÙØªØ¹Ù ٠عÙÙÙØ§ ÙØªØ±Ø¬Ø¹ ÙØªÙجة Ø£ÙØ«Ø± Ù Ù Ø§ÙØ¯ÙØ§Ù Ø§ÙØªÙ تع٠٠عÙÙ Ù ØªØºÙØ±Ø§Øª Ø®Ø§Ø±Ø¬ÙØ§ ÙØªØ¹Ø¯Ù عÙÙÙÙ .
ØªØ³Ù ÙØ© Ø§ÙØ¯ÙاÙ:
- ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø§Ø³Ù Ø§ÙØ¯Ø§ÙØ©ÙØ§Ø¶Ø ÙÙØ¹Ø¨Ø± ع٠ع٠ÙÙØ§ بØÙØ« Ø¹ÙØ¯Ù ا ÙØ±Ù استدعاء Ø§ÙØ¯Ø§ÙØ© ÙØ¹Ø±Ù ٠ا تÙÙ٠ب٠Ù٠ا ÙØªÙØ¬ØªÙØ§.
- Ø§ÙØ¯Ø§ÙØ© ÙÙ ÙØ¹Ù ÙØ°Ø§ ÙÙÙ Ø§ÙØºØ§Ùب Ø§Ø³Ù ÙØ§ ÙÙÙÙ ÙØ¹Ù.
- ÙÙØ§Ù ÙÙÙ
ات تستخدÙ
ÙØ¨Ù اسÙ
Ø§ÙØ¯Ø§ÙØ©
createâ¦,showâ¦,getâ¦,checkâ¦ÙØºÙØ±Ùا ÙØªØ¹Ø·Ù تÙÙ ÙØ ع٠٠ا ØªÙØ¹Ù Ø§ÙØ¯Ø§ÙØ©.
Ø§ÙØ¯Ùا٠ÙÙ ÙØØ¯Ø© Ø§ÙØ¨Ùاء Ø§ÙØ£Ø³Ø§Ø³ÙØ© ÙÙØ¨Ø±Ùا٠ج. Ø§ÙØ¢Ù عرÙÙØ§ Ø§ÙØ§Ø³Ø§Ø³Ùات ÙÙÙ ÙÙÙØ§ Ø§ÙØ¨Ø¯Ø¡ Ø¨ØµÙØ¹Ùا ÙØ§Ø³ØªØ®Ø¯Ø§Ù ÙØ§. ÙÙÙÙ ÙØ°Ù ÙÙØ· Ø§ÙØ¨Ø¯Ø§ÙØ© ÙØ³Ùرجع ÙÙØ§ ٠رات Ø§ÙØ¹Ø¯Ùدة غائصÙÙ Ù٠اع٠اÙÙØ§.
Ø§ÙØªØ¹ÙÙÙØ§Øª
<code>Ø ÙÙÙÙØ«Ùر Ù Ù Ø§ÙØ³Ø·Ùر استخدÙ<pre>Ø ÙÙØ£Ùثر Ù Ù 10 Ø³Ø·ÙØ± استخد٠(plnkr, JSBin, codepenâ¦)