ÛÚ© Ù ÙØ¯Ø§Ø± در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÙÙ ÛØ´Ù از ÛÚ© ÙÙØ¹ ٠شخص است. Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ رشت٠(string) ÛØ§ عدد (number).
در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت 8 ÙÙØ¹ داد٠اصÙÛ ÙØ¬Ùد دارد. اÛÙØ¬Ø§Ø ٠ا Ø¢ÙÙØ§ را Ø¨Ù Ø·ÙØ± Ú©ÙÛ Ù¾ÙØ´Ø´ Ù ÛâØ¯ÙÛ٠٠در ÙØµÙâÙØ§Û Ø¢ÛÙØ¯Ù Ø¯Ø±Ø¨Ø§Ø±Ù ÙØ± کدا٠با جزÛÛØ§Øª ØµØØ¨Øª Ù ÛâÚ©ÙÛÙ .
٠ا Ù ÛâØªÙØ§ÙÛÙ ÙØ± ÙÙØ¹Û را Ø¯Ø§Ø®Ù Ù ØªØºÛØ± ÙØ±Ø§Ø± دÙÛÙ . Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ ÛÚ© Ù ØªØºÛØ± Ù ÛâØªÙØ§Ùد ÛÚ© بار رشت٠باشد ٠سپس ÛÚ© عدد را Ø°Ø®ÛØ±Ù Ú©ÙØ¯:
// Ø§Ø±ÙØ±Û ÙØ¬Ùد ÙØ®ÙØ§ÙØ¯ داشت
let message = "Ø³ÙØ§Ù
";
message = 123456;
زباÙâÙØ§Û Ø¨Ø±ÙØ§Ù ÙâÙÙÛØ³ÛâØ§ÛØ Ù Ø«Ù Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±ÛÙ¾ØªØ Ú©Ù ÚÙÛ٠ا٠کاÙÛ Ø¨Ù Ø´Ù Ø§ Ù ÛâØ¯ÙÙØ¯ âDynamically Typedâ ÙØ§Ù ÛØ¯Ù Ù ÛâØ´ÙÙØ¯. ب٠اÛ٠٠عÙÛ Ú©Ù Ø§ÙÙØ§Ø¹Û از Ø¯Ø§Ø¯Ù ÙØ¬Ùد دارد ا٠ا Ù ØªØºÛØ±Ùا Ù ØØ¯Ùد ب٠آÙÙØ§ ÙÛØ³ØªÙد.
Number
let n = 123;
n = 12.345;
ÙÙØ¹ number (عدد) اعداد صØÛØ Ù Ø§Ø¹Ø¯Ø§Ø¯ Ø§Ø¹Ø´Ø§Ø±Û Ø±Ø§ شا٠٠٠ÛâØ´ÙØ¯.
عÙ
ÙÛØ§Øª Ù
ختÙÙÛ Ø¯Ø± Ù
ÙØ±Ø¯ اعداد ÙØ¬Ùد دارد Ù
اÙÙØ¯ ضرب * Ø ØªÙØ³ÛÙ
/ Ø Ø¬Ù
ع + Ø ØªÙØ±ÛÙ - Ù ØºÛØ±Ù.
ÙÙ
ÛÙØ·Ùر بجز اعداد Ù
عÙ
ÙÙÛØ اعداد Ø®Ø§ØµÛ ÙÛØ² ÙØ¬Ùد Ø¯Ø§Ø±ÙØ¯ ک٠ب٠ÙÙ
ÛÙ ÙÙØ¹ از Ù
ØªØºÛØ±Ùا Ù
Ø±Ø¨ÙØ· Ù
ÛâØ´ÙÙØ¯. ÛØ¹ÙÛ: Infinity (بÛâÙÙØ§Ûت)Ø Infinity- (Ù
ÙÙÛ Ø¨ÛâÙÙØ§Ûت) Ù NaN.
-
Infinity Ø¨ÛØ§Ùگر Ø¹ÙØ§Ù ت Ø±ÛØ§Ø¶ÛاتÛ٠بÛâÙÙØ§Ûت â Ø§Ø³Øª. اÛÙ Ù ÙØ¯Ø§Ø± خاص Ø¨ÙØ¯Ù ک٠از ÙØ± عدد دÛÚ¯Ø±Û Ø¨Ø²Ø±Ú¯ØªØ± است.
از ØªÙØ³ÛÙ ÙØ± Ø¹Ø¯Ø¯Û Ø¨Ø§ ØµÙØ± ب٠اÛÙ Ù ÙØ¯Ø§Ø± Ù ÛâØ±Ø³ÛÙ :
alert( 1 / 0 ); // InfinityÛØ§ Ø¨Ù Ø·ÙØ± ٠ستÙÛÙ ÙÛØ² Ø¨Ù Ø¢Ù Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø±ÛÙ :
alert( Infinity ); // Infinity -
NaNØ¨ÛØ§Ùگر ÛÚ© Ø§Ø´Ú©Ø§Ù Ù ØØ§Ø³Ø¨Ø§ØªÛ است. اÛÙ Ù ÙØ¯Ø§Ø± ÙØªÛج٠ÛÚ© ع٠ÙÛØ§Øª Ø±ÛØ§Ø¶ÛØ§ØªÛ ØºÙØ· ÛØ§ تعرÛÙâÙØ´Ø¯Ù است. Ø¨Ø±Ø§Û ÙÙ ÙÙÙ:alert( "not a number (ÚÛØ²Û ØºÛØ± از عدد)" / 2 ); // NaN ØÚÙÛÙ ØªÙØ³ÛÙ Û Ø§Ø´ØªØ¨Ø§Ù Ø§Ø³ØªNaNÚØ³Ø¨Ùد٠است. ÙØ± Ø¹Ù Ù Ø±ÛØ§Ø¶ÛØ§ØªÛ Ø±ÙÛNaNÙ ÙØ¯Ø§Ø±NaNرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯:alert( NaN + 1 ); // NaN alert( 3 * NaN ); // NaN alert( "not a number (ÚÛØ²Û ØºÛØ± از عدد)" / 2 - 1 ); // NaNدر ÙØªÛج٠اگر جاÛÛ Ø¯Ø± عبارت Ø±ÛØ§Ø¶ÛاتÛ
NaNÙØ¬Ùد Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø Ø¨Ø± رÙÛ ØªÙ Ø§Ù Ù Ø¹Ø§Ø¯ÙÙ ØªØ§Ø«ÛØ± Ù Ûâگذارد (ÙÙØ· ÛÚ© Ø§Ø³ØªØ«ÙØ§ Ø¨Ø±Ø§Û Ø¢Ù ÙØ¬Ùد دارد:NaN ** 0برابر با1است).
ع٠ÙÛØ§Øª Ø±ÛØ§Ø¶Û در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ا٠٠است. ٠ا ÙØ± ÙÙØ¹ ع٠ÙÛ Ù ÛâØªÙØ§ÙÛÙ Ø§ÙØ¬Ø§Ù دÙÛ٠٠اÙÙØ¯ ØªÙØ³Û٠بر ØµÙØ±Ø Ø±ÙØªØ§Ø± کرد٠با رشتÙâÙØ§Û ØºÛØ± Ø¹Ø¯Ø¯Û Ù٠اÙÙØ¯ اعداد Ù ØºÛØ±Ù.
اسکرÛپت Ù
ا ÙÛÚگا٠با Ø®Ø·Ø§Û Ù
Ø±Ú¯Ø¨Ø§Ø±Û (fatal error) Ù
ÙØ§Ø¬Ù ÙØ®ÙØ§ÙØ¯ شد. در بدترÛÙ ØØ§Ùت NaN را ب٠عÙÙØ§Ù ÙØªÛØ¬Ù Ø®ÙØ§ÙÛÙ
Ú¯Ø±ÙØª.
Ù ÙØ¯Ø§Ø±ÙØ§Û Ø¹Ø¯Ø¯Û Ø®Ø§Øµ Ø¨Ù Ø·ÙØ± Ø±Ø³Ù Û Ø¨Ù ÙÙØ¹ ânumberâ ØªØ¹ÙÙ Ø¯Ø§Ø±ÙØ¯. Ø§ÙØ¨ØªÙ Ø¢ÙÙØ§ Ø¨Ù Ù Ø¹ÙØ§Û ÙØ§ÙØ¹Û Ø§ÛÙ Ú©ÙÙ ÙØ عدد ÙÛØ³ØªÙد.
٠ا در ÙØµÙ اعداد Ø¨ÛØ´ØªØ± دربار٠کار کرد٠با اعداد Ø®ÙØ§ÙÛÙ Ø¯ÛØ¯.
BigInt
در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±ÛÙ¾ØªØ ÙÙØ¹ ânumberâ ÙÙ
ÛâØªÙØ§Ùد Ù
ÙØ¯Ø§Ø±ÙØ§Û ØµØÛØ Ø¨ÛØ´ØªØ± از (253-1) (برابر با 9007199254740991) ÛØ§ اعداد Ù
ÙÙÛ Ú©Ù
تر از -(253-1) Ø¨Ø±Ø§Û Ø§Ø¹Ø¯Ø§Ø¯ Ù
ÙÙÛ Ø±Ø§ ÙØ´Ø§Ù Ø¯ÙØ¯.
اگر Ø¨Ø®ÙØ§ÙÛÙ
Ø®ÛÙÛ Ø¯ÙÛ٠باشÛÙ
Ø ÙÙØ¹ ânumberâ Ù
ÛâØªÙØ§Ùد اعداد صØÛØ Ø¨Ø²Ø±Ú¯âØªØ± را Ø°Ø®ÛØ±Ù Ú©ÙØ¯ (Ø§Ø¹Ø¯Ø§Ø¯Û ØªØ§ 1.7976931348623157 * 10308) اÙ
ا Ø¨ÛØ±Ù٠از Ù
ØØ¯Ùد٠اÙ
٠عدد صØÛØ (253-1)Â±Ø Ø®Ø·Ø§Û Ø¯ÙØª Ø¨Ù ÙØ¬Ùد Ù
ÛâØ¢ÛØ¯ ÚÙ٠تÙ
اÙ
رÙÙ
âÙØ§ درÙÙ ØØ§Ùظ٠64 Ø¨ÛØªÛ Ø¬Ø§Û ÙÙ
ÛâÚ¯ÛØ±Ùد. Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ ÛÚ© Ù
ÙØ¯Ø§Ø± ØªÙØ±ÛØ¨Û Ù
Ù
ک٠است Ø°Ø®ÛØ±Ù Ø´ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ اÛ٠د٠عدد (Ú©Ù Û Ø¨ÛØ´ØªØ± از Ù ØØ¯Ùد٠ا٠Ù) ÛÚ©Ø³Ø§Ù ÙØ³ØªÙد:
console.log(9007199254740991 + 1); // 9007199254740992
console.log(9007199254740991 + 2); // 9007199254740992
Ø¨ÙØ§Ø¨Ø±Ø§ÛÙØ تÙ
اÙ
اعداد صØÛØ ÙØ±Ø¯ ک٠از (253-1) Ø¨ÛØ´ØªØ± ÙØ³ØªÙد ÙÙ
ÛâØªÙØ§ÙÙØ¯ در ÙÙØ¹ ânumberâ Ø°Ø®Ûر٠شÙÙØ¯.
Ù
ØØ¯Ùد٠(253-1)± Ø¨Ø±Ø§Û Ø¨ÛØ´ØªØ± Ú©Ø§Ø±ÙØ§ کاÙÛ Ø§Ø³ØªØ Ø§Ù
ا گاÙÛ Ø¨Ù Ø§Ø¹Ø¯Ø§Ø¯ Ø¨Ø³ÛØ§Ø± بزرگ ÙÛØ§Ø² دارÛÙ
Ø Ø¨Ø±Ø§Û Ù
ثا٠در کرÛپتÙگراÙÛ ÛØ§ timestamps با Ø¯ÙØª Ù
Ûکر٠ثاÙÛÙ.
ÙÙØ¹ BigInt Ø¨Ø±Ø§Û ÙÙ
Ø§ÛØ´ داد٠اعداد صØÛØ Ú©Ù Ø·ÙÙ Ø¯ÙØ®ÙاÙÛ Ø¯Ø§Ø±ÙØ¯ Ø¨Ù ØªØ§Ø²Ú¯Û Ø¨Ù Ø²Ø¨Ø§Ù Ø§Ø¶Ø§Ù٠شد٠است.
ÛÚ© Ù
ÙØ¯Ø§Ø± BigInt با اضاÙ٠کرد٠n ب٠آخر ÛÚ© عدد صØÛØ Ø§ÛØ¬Ø§Ø¯ Ù
ÛâØ´ÙØ¯:
// Ø¨ÙØ¯Ù آ٠است BigInt در آخر ب٠Ù
Ø¹ÙØ§Û "n" ØØ±Ù
const bigInt = 1234567890123456789012345678901234567890n;
ب٠دÙÛ٠اÛÙک٠اعداد BigInt Ø¨Ù ÙØ¯Ø±Øª ÙÛØ§Ø² Ù
ÛâØ´ÙÙØ¯Ø Ù
ا Ø¢ÙÙØ§ را اÛÙØ¬Ø§ Ù¾ÙØ´Ø´ ÙÙ
ÛâØ¯ÙÛÙ
Ø Ø§Ù
ا ÛÚ© ÙØµÙ BigInt جدا ب٠آÙÙØ§ اختصاص دادÛÙ
. زÙ
اÙÛ Ú©Ù Ø¨Ù ÚÙÛ٠اعداد Ø¨Ø²Ø±Ú¯Û ÙÛØ§Ø² Ø¯Ø§Ø´ØªÛØ¯ آ٠را Ø¨Ø®ÙØ§ÙÛØ¯.
در ØØ§Ù ØØ§Ø¶Ø±Ø BigInt در Firefox/Chrome/Edge/Safari Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
ÛâØ´ÙÙØ¯Ø اÙ
ا در IE Ø®ÛØ±.
ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ جدÙÙ Ø³Ø§Ø²Ú¯Ø§Ø±Û BigInt در MDN را Ø¨Ø±Ø§Û Ø§ÛÙک٠بداÙÛØ¯ Ú©Ø¯Ø§Ù ÙØ³Ø®Ù از Ù Ø±ÙØ±Ú¯Ø±Ùا Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù ÛâØ´ÙÙØ¯Ø Ø¨Ø±Ø±Ø³Û Ú©ÙÛØ¯.
String
در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÛÚ© رشت٠(string) Ø¨Ø§ÛØ¯ ØªÙØ³Ø· Ú©ÙØªÙÛØ´ÙÙâÙØ§ Ø§ØØ§Ø·Ù Ø´ÙØ¯.
let str = "Ø³ÙØ§Ù
";
let str2 = 'Ú©ÙØªÛØ´ÙâÙØ§Û ØªÚ©Û ÙÛØ² Ù
ÙØ±Ø¯ ÙØ¨ÙÙ ÙØ³ØªÙد';
let phrase = `دÛگر را Ø¬Ø§Û Ø¯Ø§Ø¯ ${str} Ù
ÛâØªÙØ§Ù ÛÚ©`;
در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت س٠ÙÙØ¹ Ú©ÙØªÙÛØ´Ù٠دارÛÙ :
- Double qoutes (Ú©ÙØªÛØ´Ù Ø¯ÙØªØ§ÛÛ) Ù
اÙÙØ¯
"Hello". - Single qoutes (Ú©ÙØªÛش٠تکÛ) Ù
اÙÙØ¯
'Hello'. - Backticks Ù
اÙÙØ¯
`Hello`.
Double quotes Ù Single quotes ÙÙ Ø§Ù Ú©ÙØªÙÛØ´ÙÙâÙØ§Û Ø¹Ø§Ø¯Û ÙØ³ØªÙد ٠در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ØªÙØ§ÙØªÛ Ø¨Û٠آÙÙØ§ ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.
Backticks Ú©ÙØªÛØ´ÙâÙØ§ÛÛ Ø¨Ø§ âÙØ§Ø¨ÙÛØªâÙØ§Û گستردÙâ ÙØ³ØªÙد. Ø¨Ù ÙØ³ÛÙÙâÛ Ø¢ÙÙØ§ Ù
ÛâØªÙØ§ÙÛÙ
داخ٠ÛÚ© Ø±Ø´ØªÙØ با ÙØ±Ø§Ø± داد٠عبارات Ù Ø¯Ø³ØªÙØ±Ø§Øª Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت در {...}$ Ø¢ÙÙØ§ را بÙÙÛØ³ÛÙ
.
let name = "John";
// تعبÛ٠کرد٠ÛÚ© Ù
ØªØºÛØ±
alert( `Hello, ${name}!` ); // Hello, John!
// تعبÛ٠کرد٠ÛÚ© عبارت
alert( `the result is ${1 + 2}` ); // the result is 3 (ترجÙ
Ù: ÙØªÛج٠3 است)
Ø¹Ø¨Ø§Ø±ØªÛ Ú©Ù Ø¯Ø± {â¦}$ ÙØ±Ø§Ø± Ù
ÛâÚ¯ÛØ±Ø¯ اجرا Ø´Ø¯Ù Ù ÙØªÛج٠آ٠در رشت٠Ù
ÙØ±Ø¯ ÙØ¸Ø± ÙØ±Ø§Ø± Ù
ÛâÚ¯ÛØ±Ø¯. Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
ÙØ± ÚÛØ²Û را درÙÙ Ø¢Ù ÙØ±Ø§Ø± دÙÛÙ
: ÛÚ© Ù
ØªØºÛØ± Ù
ث٠name ÛØ§ ÛÚ© عبارت Ù
ØØ§Ø³Ø¨Ø§ØªÛ Ù
ث٠1 + 2 ÛØ§ ØØªÛ ÚÛØ²Û Ù¾ÛÚÛØ¯ÙâØªØ±.
ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ ک٠اÛÙ ÙÙØ· Ù ÛâØªÙØ§Ùد در Backticks Ø§ÙØ¬Ø§Ù Ø´ÙØ¯. Ú©ÙØªÛØ´ÙâÙØ§Û دÛگر ÙØ§Ø¨ÙÛØª تعبÛ٠کرد٠را ÙØ¯Ø§Ø±Ùد:
alert( "the result is ${1 + 2}" ); // the result is ${1 + 2} (Ú©Ø§Ø±Û ÙÙ
ÛâÚ©ÙÙØ¯ double quotes)
در Ù ÙØ±Ø¯ رشتÙâÙØ§ در ÙØµÙ رشتÙâÙØ§ Ø¨ÛØ´ØªØ± ØµØØ¨Øª Ø®ÙØ§ÙÛ٠کرد.
در Ø¨Ø¹Ø¶Û Ø§Ø² زباÙâÙØ§Ø ÛÚ© ÙÙØ¹ خاص âÚ©Ø§Ø±Ø§Ú©ØªØ±â Ø¨Ø±Ø§Û کاراکتر ØªÚ©Û ÙØ¬Ùد دارد. Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ در زبا٠C Ù Java ب٠آ٠âcharâ Ù ÛâÚ¯ÙÛÙØ¯.
در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±ÛÙ¾ØªØ ÚÙÛÙ ÙÙØ¹Û ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯. تÙÙØ§ ÛÚ© ÙÙØ¹ ÙØ¬Ùد دارد: string. ÛÚ© Ø±Ø´ØªÙ Ø´Ø§ÛØ¯ شاÙ
Ù ØµÙØ± کاراکتر (خاÙÛ)Ø ÛÚ© کاراکتر ÛØ§ تعداد Ø²ÛØ§Ø¯Û کاراکتر باشد.
Boolean (ÙÙØ¹ Ù ÙØ·ÙÛ)
ÙÙØ¹ Boolean ÙÙØ· ÛÚ©Û Ø§Ø² د٠Ù
ÙØ¯Ø§Ø± true Ù false را شاÙ
Ù Ù
ÛâØ´ÙØ¯.
اÛÙ ÙÙØ¹ Ù
عÙ
ÙÙØ§ Ø¨Ø±Ø§Û Ø°Ø®ÛØ±Ù Ù
ÙØ¯Ø§Ø± بÙÙ ÛØ§ Ø®ÛØ± Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯. true ب٠Ù
عÙÛ âØ¨ÙÙØ درستâ Ù false ب٠Ù
عÙÛ âØ®ÛØ±Ø ÙØ§Ø¯Ø±Ø³Øªâ Ù
ÛâØ¨Ø§Ø´Ø¯.
Ø¨Ø±Ø§Û ÙÙ ÙÙÙ:
let nameFieldChecked = true; // بÙÙØ ÙØ³Ù
ت ÙØ§Ù
تÛÚ© Ø®ÙØ±Ø¯Ù است
let ageFieldChecked = false; // Ø®ÛØ±Ø ÙØ³Ù
ت س٠تÛÚ© ÙØ®Ùرد٠است
Ù ÙØ¯Ø§Ø±ÙØ§Û Boolean ب٠عÙÙØ§Ù ÛÚ© ÙØªÛجÙâÛ Ù ÙØ§Ûس٠Ù٠بدست Ù ÛâØ¢ÛÙØ¯:
let isGreater = 4 > 1;
alert( isGreater ); // true (ÙØªÛج٠Ù
ÙØ§Ûس٠"بÙÙ" است)
٠ا booleanÙØ§ را با جزÛÛØ§Øª Ø¨ÛØ´ØªØ± در ÙØµÙ ع٠Ùگر ÙØ§Û Ù ÙØ·ÙÛ Ø¨Ø±Ø±Ø³Û Ù ÛâÚ©ÙÛÙ .
Ù ÙØ¯Ø§Ø± ânullâ
Ù
ÙØ¯Ø§Ø± خاص null ب٠ÙÛÚ Ú©Ø¯Ø§Ù
از ÙÙØ¹âÙØ§ÛÛ Ú©Ù Ø¨Ø§ÙØ§ ØªÙØ¶ÛØ Ø¯Ø§Ø¯Ù Ø´Ø¯ تعÙÙ ÙØ¯Ø§Ø±Ø¯.
Null از Ø®ÙØ¯Ø´ ÛÚ© ÙÙØ¹ داد٠جداگاÙ٠را تشکÛÙ Ù
ÛâØ¯ÙØ¯ Ú©Ù ÙÙØ· ØØ§ÙÛ Ù
ÙØ¯Ø§Ø± null است:
let age = null;
در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت null Ù
اÙÙØ¯ Ø¨Ø¹Ø¶Û Ø§Ø² زباÙâÙØ§Û Ø¨Ø±ÙØ§Ù
ÙâÙÙÛØ³Û ب٠Ù
عÙÛ ÙØ¬Ùد ÙØ¯Ø§Ø´ØªÙ ÛÚ© Ø´ÛØ¡ ÛØ§ ب٠Ù
عÙÛ null pointer ÙÛØ³Øª.
Null ØµØ±ÙØ§ ÛÚ© Ù ÙØ¯Ø§Ø± خاص است Ú©Ù ÙÙ Ø§ÛØ§Ùگر âØ®Ø§ÙÛ Ø¨ÙØ¯ÙâØ âÙÛÚ Ø¨ÙØ¯Ùâ Ù â٠شخص ÙØ¨ÙØ¯Ù Ù ÙØ¯Ø§Ø±â Ù ÛâØ¨Ø§Ø´Ø¯.
کد Ø¨Ø§ÙØ§ Ø¨ÛØ§Ù Ù
ÛâÚ©ÙØ¯ Ú©Ù age Ù
شخص ÙÛØ³Øª.
Ù ÙØ¯Ø§Ø± âundefinedâ
Ù
ÙØ¯Ø§Ø± خاص undefined ÙÙ
جداست. اÛÙ Ù
ÙØ¯Ø§Ø± درست Ù
ث٠nullØ Ø§Ø² Ø®ÙØ¯Ø´ ÛÚ© ÙÙØ¹ Ù
ÛâØ³Ø§Ø²Ø¯.
undefined بدÛÙ Ù
عÙÛâ Ø§Ø³Øª Ú©Ù âÙ
ÙØ¯Ø§Ø±Û اختصاص ÙÛØ§Ùت٠استâ.
اگر Ù
ØªØºÛØ±Û تعرÛÙ Ú©ÙÛÙ
Ù Ù
ÙØ¯Ø§Ø±Û ب٠آ٠اختصاص ÙØ¯ÙÛÙ
Ø Ù
ÙØ¯Ø§Ø± Ø¢Ù undefined Ø®ÙØ§Ùد Ø¨ÙØ¯:
let x;
alert(x); // داد٠Ù
ÛâØ´ÙØ¯ "undefined" Ù
ÙØ¯Ø§Ø±
از ÙØØ§Ø¸ ÙÙÛØ اÙ
Ú©Ø§Ù ØªØ®ØµÛØµ داد٠undefined Ø¨Ù ÙØ± Ù
ØªØºÛØ±Û ÙØ¬Ùد دارد :
let x = 123;
// undefined تغÛÛØ± Ù
ÙØ¯Ø§Ø± بÙ
x = undefined;
alert(x); // "undefined"
â¦Ø§Ù
ا Ù
ا اÛ٠کار را Ù¾ÛØ´ÙÙØ§Ø¯ ÙÙ
ÛâÚ©ÙÛÙ
. Ù
عÙ
ÙÙØ§Ø Ø¨Ø±Ø§Û Ø§Ø®ØªØµØ§Øµ داد٠Ù
ÙØ¯Ø§Ø± âÙØ§Ù
شخصâ ÛØ§ âØ®Ø§ÙÛâ Ø¨Ù ÛÚ© Ù
ØªØºÛØ± از null Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯Ø در ØØ§ÙÛ Ú©Ù undefined ب٠عÙÙØ§Ù ÛÚ© Ù
ÙØ¯Ø§Ø± اÙÙÛÙ Ø¨Ø±Ø§Û ÚÛØ²ÙØ§Û ØªØ®ØµÛØµ Ø¯Ø§Ø¯Ù ÙØ´Ø¯Ù رزر٠شد٠است.
Ø´ÛØ¡Ùا Ù SymbolÙØ§
ÙÙØ¹ object (Ø´ÛØ¡) از اÙÙØ§Ø¹ خاص است.
اÙÙØ§Ø¹ ٠ختÙ٠داد٠ک٠تا اÛÙØ¬Ø§ Ù Ø·Ø§ÙØ¹Ù کردÛ٠از اÙÙØ§Ø¹ «primitive» (اÙÙÛÙ) Ø¨ÙØ¯Ùد ÚØ±Ø§ Ú©Ù Ù ÙØ¯Ø§Ø± Ø¢ÙÙØ§ ÙÙØ· شا٠٠ÛÚ© ÚÛØ² Ù ÛâØ´Ø¯ (Ø±Ø´ØªÙ ÛØ§ عدد ÛØ§ ÙØ± ÚÛØ² دÛگرÛ). در Ù ÙØ§Ø¨ÙØ Ø´ÛØ¡Ùا Ø¨Ø±Ø§Û Ø°Ø®ÛØ±Ù Ù Ø¬Ù ÙØ¹ÙâØ§Û Ø§Ø² دادÙâÙØ§ ب٠شکÙÛ Ù¾ÛÚÛØ¯ÙâØªØ± Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâØ´ÙÙØ¯.
Ø´ÛØ¡Ùا Ø¨Ù ØØ¯Û Ù ÙÙ ÙØ³ØªÙد Ú©Ù ÙØ§Û٠طرز Ø¨Ø±Ø®ÙØ±Ø¯ ÙÛÚÙâØ§Û ÙØ³ØªÙد. ٠ا بعدا در ÙØµÙ Ø´ÛØ¡Ùا ب٠سراغ Ø¢ÙÙØ§ Ø®ÙØ§ÙÛÙ Ø±ÙØªØ بعد از اÛÙک٠دربار٠اÙÙØ§Ø¹ primitive Ø¨ÛØ´ØªØ± ÛØ§Ø¯ Ú¯Ø±ÙØªÛÙ .
ÙÙØ¹ symbol Ø¨Ø±Ø§Û Ø§ÛØ¬Ø§Ø¯ Ø´ÙØ§Ø³ÙâÙØ§Û Ù
ÙØØµØ± Ø¨Ù ÙØ±Ø¯ Ø¨Ø±Ø§Û Ø´ÛØ¡Ùا Ù
ÙØ±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù ÙØ±Ø§Ø± Ù
ÛâÚ¯ÛØ±Ø¯. ب٠Ù
ÙØ¸Ùر تکÙ
Û٠اÛ٠بخش اÛÙ ÙÙØ¹ داد٠را ÙÛØ² در اÛÙØ¬Ø§ عÙÙØ§Ù Ù
ÛâÚ©ÙÛÙ
اÙ
ا جزÛÛØ§Øª آ٠را تا زÙ
اÙÛ Ú©Ù Ø´ÛØ¡Ùا را Ø¨Ø´ÙØ§Ø³ÛÙ
ب٠آÛÙØ¯Ù Ù
ÙÚ©ÙÙ Ù
ÛâÚ©ÙÛÙ
.
ع٠Ùگر typeof
عÙ
Ùگر typeof ÙÙØ¹ عÙ
ÙÙÙØ¯ را ÙØ´Ø§Ù Ù
ÛâØ¯ÙØ¯. Ù
عÙ
ÙÙØ§ زÙ
اÙÛ Ú©Ù Ù
ÛâØ®ÙØ§ÙÛÙ
ب٠سرعت ÙÙØ¹ ÛÚ© Ù
ÙØ¯Ø§Ø± را Ø¨Ø±Ø±Ø³Û Ú©ÙÛÙ
ÛØ§ زÙ
اÙÛâ Ú©Ù Ù
ÛâØ®ÙØ§ÙÛÙ
Ù
ÙØ§Ø¯ÛØ±Û Ø§Ø² اÙÙØ§Ø¹ Ù
ختÙ٠را Ø¨Ù Ø·ÙØ± Ù
ØªÙØ§Ùت پردازش Ú©ÙÛÙ
Ø Ú©Ø§Ø±Ø¨Ø±Ø¯ دارد.
اÛ٠ع٠Ùگر Ø¨Ù Ø¯Ù Ø´Ú©Ù ÙØ§Ø¨Ù Ø§Ø³ØªÙØ§Ø¯Ù است:
- ب٠عÙÙØ§Ù عÙ
Ùگر :
typeof x. - ب٠عÙÙØ§Ù تابع :
typeof (x).
Ø¨Ù Ø¹Ø¨Ø§Ø±ØªÛ Ø¯ÛÚ¯Ø±Ø Ø§Û٠ع٠Ùگر Ù٠با Ù¾Ø±Ø§ÙØªØ² کار Ù ÛâÚ©ÙØ¯ Ù٠بدÙ٠آÙ. ÙØªÛØ¬Ù ÙØ± د٠Ûکسا٠است.
با صدا زد٠typeof x Ø±Ø´ØªÙ Ú©Ø§Ø±Ø§Ú©ØªØ±Û ØØ§ÙÛ ÙÙØ¹ Ø¢Ù Ù
ÙØ¯Ø§Ø± ÙÙ
Ø§ÛØ´ داد Ù
ÛâØ´ÙØ¯:
typeof undefined // "undefined"
typeof 0 // "number"
typeof 10n // "bigint"
typeof true // "boolean"
typeof "foo" // "string"
typeof Symbol("id") // "symbol"
typeof Math // "object" (1)
typeof null // "object" (2)
typeof alert // "function" (3)
س٠خط آخر Ø§ØØªÙ Ø§ÙØ§ ÙÛØ§Ø² Ø¨Ù ØªÙØ¶ÛØØ§Øª Ø¨ÛØ´ØªØ±Û دارد:
MathÛÚ© Ø´ÛØ¡ built-in (از Ù¾ÛØ´ ÙÙØ´ØªÙ شد٠در ÙØ³ØªÙ زباÙ) است ک٠ع٠ÙÛØ§Øª ٠تÙÙØ¹ Ø±ÛØ§Ø¶ÛØ§ØªÛ Ø±Ø§ در Ø§Ø®ØªÛØ§Ø± ٠ا ÙØ±Ø§Ø± Ù ÛâØ¯ÙØ¯. ٠ا آ٠را در ÙØµÙ اعداد ÛØ§Ø¯ Ù ÛâÚ¯ÛØ±ÛÙ . در اÛÙØ¬Ø§ ØµØ±ÙØ§ ÛÚ© ٠ثا٠از آ٠را ÙÙ Ø§ÛØ´ دادÛÙ .- Ø®Ø±ÙØ¬Û
typeof nullبرابر با"object"است. اÛÙ ÛÚ© خطا در طرز کارtypeofÙ ÛâØ¨Ø§Ø´Ø¯ ک٠از Ø±ÙØ²ÙØ§Û Ø§Ù٠در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÙØ¬Ùد Ø¯Ø§Ø´ØªÙ Ù Ø¨Ù Ù ÙØ¸Ùر Ø³Ø§Ø²Ú¯Ø§Ø±Û Ø¨Ø§ÙÛ Ù Ø§ÙØ¯Ù است. Ù Ø·Ù Ø¦ÙØ§nullÛÚ© object ÙÛØ³Øª. Ø®ÙØ¯Ù null ÛÚ©Û Ø§Ø² اÙÙØ§Ø¹ داد٠در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت است. - Ø®Ø±ÙØ¬Û
typeof alertبرابر با"function"است ÚØ±Ø§ Ú©ÙalertØ®ÙØ¯Ø´ ÙÙ ÛÚ© تابع است. ٠ا در بخشâÙØ§Û Ø¨Ø¹Ø¯Û Ø¨Ø§ تابعâÙØ§ Ø¨ÛØ´ØªØ± Ø¢Ø´ÙØ§ Ø®ÙØ§ÙÛ٠شد Ù Ø®ÙØ§ÙÛÙ Ø¢Ù ÙØ®Øª Ú©Ù ÙÙØ¹Û ØªØØª عÙÙØ§Ù function در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÙØ¯Ø§Ø±ÛÙ . تابعâÙØ§ در اص٠از ÙÙØ¹Ù object ÙØ³ØªÙد. ا٠ا ع٠Ùگرtypeofبا Ø¢ÙÙØ§ ب٠طرز دÛÚ¯Ø±Û Ø¨Ø±Ø®ÙØ±Ø¯ Ù ÛâÚ©ÙØ¯ Ùfunctionرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. اÛÙ Ù٠از Ø±ÙØ²ÙØ§Û Ø§ÙÙ Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÙØ¬Ùد داشت٠است. Ø¨Ù Ø·ÙØ± ÙÙÛØ اÛÙ Ø±ÙØªØ§Ø± درست ÙÛØ³ØªØ ا٠ا در ع٠٠٠ÛâØªÙØ§Ùد Ù ÙÛØ¯ باشد.
typeof(x)Ø´Ø§ÛØ¯ سÛÙØªÚ©Ø³ دÛÚ¯Ø±Û Ø±Ø§ Ø¯ÛØ¯Ù Ø¨Ø§Ø´ÛØ¯: typeof(x). اÛ٠با typeof x Ûکسا٠است.
Ø¨Ø±Ø§Û Ø§ÛÙÚ©Ù ÙØ§Ø¶Ø باشد: typeof ÛÚ© عÙ
Ùگر است ÙÙ ÛÚ© تابع. اÛÙØ¬Ø§ Ù¾Ø±Ø§ÙØªØ²Ùا Ø¨Ø®Ø´Û Ø§Ø² typeof ÙÛØ³ØªÙد. اÛÙ ÙÙØ¹Û از Ù¾Ø±Ø§ÙØªØ² است Ú©Ù Ø¨Ø±Ø§Û Ú¯Ø±ÙÙâØ¨ÙØ¯Û Ø±ÛØ§Ø¶ÛØ§ØªÛ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯.
Ù
عÙ
ÙÙØ§ ÚÙÛÙ Ù¾Ø±Ø§ÙØªØ²ÙاÛÛ ÛÚ© عبارت Ø±ÛØ§Ø¶ÛØ§ØªÛØ Ù
اÙÙØ¯ (2 + 2)Ø Ø±Ø§ شاÙ
Ù Ù
ÛâØ´ÙÙØ¯ اÙ
ا اÛÙØ¬Ø§ Ø¢ÙâÙØ§ ÙÙØ· آرگÙÙ
ا٠(x) را Ø¯Ø§Ø±ÙØ¯. از ÙØØ§Ø¸ سÛÙØªÚ©Ø³Ø Ø¢ÙâÙØ§ ب٠Ù
ا اÛ٠اÙ
کا٠را Ù
ÛâØ¯ÙÙØ¯ ک٠از ÙØ¬Ùد ÙØ§ØµÙ٠بÛ٠عÙ
Ùگر typeof ٠آرگÙÙ
Ø§ÙØ´ جÙÙÚ¯ÛØ±Û Ú©ÙÛÙ
Ù Ø¨Ø¹Ø¶Û Ø§Ø² اشخاص آ٠را Ø¯ÙØ³Øª Ø¯Ø§Ø±ÙØ¯.
Ø¨Ø¹Ø¶Û Ø§Ø² اشخاص typeof(x) را ØªØ±Ø¬ÛØ Ù
ÛâØ¯ÙÙØ¯ اگرÚ٠سÛÙØªÚ©Ø³ typeof x Ø±Ø§ÛØ¬âتر است.
Ø®ÙØ§ØµÙ
در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت 8 ÙÙØ¹ داد٠پاÛÙâØ§Û ÙØ¬Ùد دارد.
- ÙÙØª ÙÙØ¹ داد٠اÙÙÛÙ:
numberØ¨Ø±Ø§Û Ø§Ø¹Ø¯Ø§Ø¯ از ÙØ± دستÙâØ§Û: عدد صØÛØ ÛØ§ Ø§Ø¹Ø´Ø§Ø±ÛØ اعداد صØÛØ Ø¨Ù(253-1)Â±Ù ØØ¯Ùد Ù ÛâØ´ÙÙØ¯.bigintØ¨Ø±Ø§Û Ø§Ø¹Ø¯Ø§Ø¯ صØÛØ Ø¨Ø§ Ø·ÙÙ Ø¯ÙØ®Ùا٠است.stringØ¨Ø±Ø§Û Ø±Ø´ØªÙâÙØ§. ÛÚ© رشت٠٠٠ک٠است ØµÙØ± کاراکتر ÛØ§ Ø¨ÛØ´ØªØ± Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø ÙÛØ¬ ÙÙØ¹ جداگاÙÙâÛ ØªÚ© Ú©Ø§Ø±Ø§Ú©ØªØ±Û ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.booleanبراÛtrue/false.nullØ¨Ø±Ø§Û Ù ÙØ¯Ø§Ø±ÙØ§Û ÙØ§Ù شخص â ÛÚ© ÙÙØ¹ ٠ستÙÙ Ú©Ù ÙÙØ· ÛÚ© Ù ÙØ¯Ø§Ø±nullدارد.undefinedØ¨Ø±Ø§Û Ù ÙØ¯Ø§Ø±ÙØ§Û ØªØ®ØµÛØµ ÙÛØ§Ùت٠â ÛÚ© ÙÙØ¹ ٠ستÙÙ Ú©Ù ÙÙØ· ÛÚ© Ù ÙØ¯Ø§Ø±undefinedدارد.symbolØ¨Ø±Ø§Û Ø´ÙØ§Ø³ÙâÙØ§Û Ûکتا.
- Ù ÛÚ© ÙÙØ¹ داد٠non-primitive :
objectØ¨Ø±Ø§Û Ø³Ø§Ø®ØªØ§Ø±ÙØ§Û Ù¾ÛÚÛØ¯ÙâØªØ± دادÙ.
عÙ
Ùگر typeof ب٠شÙ
ا اجاز٠Ù
ÛâØ¯ÙØ¯ ÙÙØ¹ Ù
ÙØ¯Ø§Ø± Ø°Ø®ÛØ±Ù شد٠در ÛÚ© Ù
ØªØºÛØ± را ØªØ´Ø®ØµÛ Ø¯ÙÛØ¯.
- Ù
عÙ
ÙÙØ§ Ø¨Ù ØµÙØ±Øª
typeof xØ§Ø³ØªÙØ§Ø¯Ù Ù ÛâØ´ÙØ¯Ø ا٠اtypeof(x)ÙÙ ÙØ§Ø¨Ù ÙØ¨Ù٠است. - ÛÚ© رشت٠شاÙ
٠اسÙ
ÙÙØ¹ را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯Ø Ù
Ø«Ù
"string". - براÛ
nullÙ ÙØ¯Ø§Ø±"object"را ÙÙ Ø§ÛØ´ Ù ÛâØ¯ÙØ¯ â Ø§ÛÙ ÛÚ© خطا در Ø®ÙØ¯Ù Ø²Ø¨Ø§Ù Ø§Ø³ØªØ Ø¯Ø± ÙØ§Ùع null ÛÚ© object ÙÛØ³Øª.
در ÙØµÙâÙØ§Û Ø¨Ø¹Ø¯ÛØ ٠ا رÙÛ ÙÙØ¹âÙØ§Û âprimitiveâ ØªÙ رکز Ù ÛâÚ©ÙÛÙ Ù ÙÙÚ¯Ø§Ù Û Ú©Ù Ø¨Ø§ Ø¢ÙÙØ§ Ø¨ÛØ´ØªØ± Ø¢Ø´ÙØ§ شدÛÙ Ø Ø¨Ù Ø³Ø±Ø§Øº Ø´ÛØ¡Ùا Ù ÛâØ±ÙÛÙ .
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)