קורס JavaScript for Developers שיעור תרגיל סיכום: משחק תפוס ת׳אדום


זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/javascript/lessons/%D7%AA%D7%A8%D7%92%D7%99%D7%9C-%D7%A1%D7%99%D7%9B%D7%95%D7%9D-%D7%9E%D7%A9%D7%97%D7%A7-%D7%AA%D7%A4%D7%95%D7%A1-%D7%AA%D7%B3%D7%90%D7%93%D7%95%D7%9D
var el = {
	score: document.querySelector('#score'),
	game: document.querySelector('.game')
};

למה לא פשוט לעשות:

	var score = document.querySelector('#score');
	var game = document.querySelector('.game');

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

אחלה פרקטיקה :+1:
האם יש אפשרות לבדוק לחיצה ראשונה של המשתמש? אני צריך את זה כדי לעשות שהטיימר שמוריד ניקוד יתחיל רק לאחר הלחיצה הראשונה.
עוד שאלה, אם יש אפשרות לבדוק האם הtimeOut רץ או לא?

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

גם לגבי בדיקה אם ה timeout רץ אין מנגנון אבל אתה יכול לבנות לעצמך - צור משתנה גלובאלי ושנה את ערכו כל פעם שאתה מפעיל setTimeout. אתה יכול אפילו להשתמש בערך החוזר מ setTimeout בשביל זה. בהמשך תוכל לבדוק אם המשתנה הוא null או לא