בעבר היו נתונים מסוג מסוים והיה ענייןכדי לעבד אותם על מנת להשיג תוצאה. השליטה על "רעיונות לא טיפוסיים בתחום התיאור" באה באופן בלתי צפוי, אבל באופן טבעי. ההצהרה הראשונית של משתנה חדלה להיות חובה, והסימן לסוגו בכלל איבד כל משמעות, לפחות לפני המבצע שבו הוא משתתף.

סוג

המתכנת התיר את ידיו: זה בכלל לא הכרחי להצהיר משהו בהתחלה. לעתים קרובות, רק בזמן השימוש תהיה ודאות, מה לקחת, מה לעשות ואיך. באשר לסוגים, הם עצמם "הפכו לערכים", כלומר, הם הפכו נתונים, שבו גם משהו תלוי!

הוא עדיין שם או לא, אז מה אם

תיאור פשוט מאוד של המשתנה "aaa" והאלגוריתם הזמין לעיבודו:

var aaa;

אם (aaa)
Res = "אני!"; / / אני!
} Other {
Res = "לא לי ..."; / / אין לי
}

ייתן תוצאה ברורה: "אני לא." כאן הערך של הפונקציה JavaScript type = לא מוגדר. רק לתאר את המשתנה - "שום דבר בכלל" לא אומר. כמובן, כאשר aaa = 1, אנחנו מקבלים: "אני!", אבל אם aaa = 0, זה יהיה כמו במקרה הראשון: "אני לא ...". לוגיקה נהדרת, מתמטיקאי אחר, וגם אזרח משותף, לא יכלו אפילו לחשוב שלמשמעות אפס יש משמעות שונה לחלוטין מזו האמיתית. רק תכנות מודרני (לא טיפוסי) מסוגל לרעיונות כה נועזים!

סוג JavaScript, כמו הביטוי חכם יותר אם (aaa) {... x ...} אחר {... y ...}, יש תכונות הצרכן מעולה מאוד ידידותית למשתמש.

על המוזרויות של קירילית ולטינית

מתכנת מקצועי תמיד מעדיףאנגלית סימן של תווים רוסי, בכבוד רב הודות לשלב זה של פיתוח של תכנות, כאשר הקיברנטיקה לא היה מוכר על כמה מקומות, אבל בטריטוריות אחרות במדעי המחשב בביטחון הלך במעלה ההר. שפות התכנות החלו להתרבות ולהתפתח, כבסיס לתחביר של 26 אותיות של האלפבית האנגלי ומערכת של סמלים מקובלים אחרים.

סוג

הפשוטה והטבעית ביותר הייתה קוד המכונה,זה היה יפה, מושלם, אבל ספציפי לכל אדריכלות, ובשפות ברמה גבוהה הרעיון של ניידות בין ארכיטקטורות מיד הפך רלוונטי. זה בעצם סותר את הרגע הנוכחי: את הטענה עבור JavaScript אנלוגי typeof = undefined מחרוזת | מספר | בוליאני | אובייקט | אז פשוט לא היה. כל השפות היו פורמליות לחלוטין, היו להן תחביר קפדני ולא אפשרו אי-ודאות.

סוגי, משתנים והשימוש בהם

הרגע חשוב מאוד. תיאור ותיאור המשתנים הוא המרכיב החשוב ביותר של התוכנית, המתכנת אינו יכול לכתוב את האלגוריתם העובד עד שהוא מניח את מגוון הנתונים האמיתי לתמונה רשמית קפדנית של משתנים, מערכים, אובייקטים ופונקציות.

הקלד טקסט

JavaScript מבצע את כל המצטבריםעשרות שנים של כוח פונקציונלי, כל העיצובים שלה משקפים באופן מושלם את הרעיונות המודרניים על התחביר ועל הכללים המקובלים של לשים סמנטיקה לתוכו.

השאלה היא, מתי זה צריך להיעשות, מתייש צורך להגדיר טקסט סוג, פונקציית JavaScript JavaScript. אפשרויות נקייה למעשה סוג טקסט קצת: תו, מחרוזת ומספר. עם זאת, אובייקט יכול לשחק את התפקיד של הטקסט, ואפילו מערך עם array.join () לבנות שמחבר את כל האלמנטים שלו לתוך טקסט אחד, כלומר, בשורה אחת.

משפט בנאלי: בכל מקום יש טקסט הקלד, ואת הפונקציה JavaScript סוג חייב לבצע בזמן הנכון את ההגדרה סוג הרצוי. זה נכון, אבל בפועל הכל מתברר אחרת. אובייקט ה- type של JavaScript יחזיר את אותו ערך בכל שלושת המקרים:

var aaa 49 {};
Res = IT(aaa);
Res + 49 "" + IT חלון.מסמך;
Res + 49 "" + IT(מסמך.טפסים[0]);

תוצאה: אובייקט / אובייקט / אובייקט

השימוש בפונקציה יכול להיות בפורמט formof (aaa) ו formof סוג aaa - זה לא חיוני, אבל בכל המקרים את התשובה ניתנת, אבל זה לא אומר שום דבר בכלל!

אי ודאות עוברת בוודאות

התכנות מאופיינת בדינמיקה מיוחדת: זה כל כך מהר טס קדימה כי בקנה מידה של תנועה מתרחב בהתמדה. החשבון נמשך חודשים, שבועות או ימים, ולפעמים אפילו במשך שעות. בבעיות ספציפיות, הדינמיקה של יצירת האלגוריתם הפתרון כל כך מהירה ודורשת המשכיות כי היציאה של המתכנת ממדינה עובד יכול לבטל את ההחלטה ליום, שבוע תקופה ארוכה יותר.

פתרון טבעי של סוג JavaScript ו בפועלתכנות מונחה עצמים, אשר בתחביר זה שונה במקצת מן הקיים בשפות מודרניות סמוכות, מעביר את מרכז הכובד אל האובייקט. רגע אופייני מאוד: השפה הופכת לבנייה המכילה סמנטיקה, ולא מערכת של נורמות תחביריות.

אובייקט

אין צורך להגדיר סוגי נתונים פשוטיםסוג שלה, או ליתר דיוק את השימוש של JavaScript typeof מספיק. במידת הצורך, זמן הריצה עצמו מטפל בתמורות הנכונות, אך ביחס לאובייקטים של JavaScript מסוג typeof נותן את התשובה הסבירה ביותר: זהו אובייקט והבעיה מסוגו היא הטיפול בו! היגיון כזה לתפיסה הקלאסית של התכנות קשה לתפיסה, אבל זה המיקום האמיתי של הדברים הנכונים.

טיפול באובייקט - כדי לקבוע את הסוג שלך, להצגהאת המאפיינים שלהם ולבצע שיטות משלהם. התכנות צמצמו את התחביר שלה, ובכל רגע של זמן מעביר את מרכז הכובד מן התחביר לסמנטיקה שנוצרה על ידי המתכנת: מערכת האובייקטים שלה, אשר מבצעת את הפתרון של המשימה.

</ p>