האם יש הבדל ביצועים רציני בין שימוש לא מוגדר או בטל כערך דמה ב- JS?


תשובה 1:

תלוי בנתון הנתונים, אך אתה תמיד יכול להשתמש בבטל <מה שלא יהיה JavaScript כדי לבדוק אם הוא לא מוגדר ולא מוגדר:

// void 0 מחזיר 'לא מוגדר', לא את מילת המפתח שלא הייתה שמורה, אלא את הערך בפועל 'לא מוגדר'.
var a;
var b = null;
console.log (a == void 0, b == void 0);
// מדפיס 'נכון נכון'

אין הבדל ביצועים מועט עד שתיהן בין שניהם, מכיוון ש- 'null' יסתכם לערך 'לא מוגדר'. הסיבה שאנו משתמשים ב- "void 0" היא מכיוון שזה קצר ואידיומטי, ואנשים יכולים להבין מה זה עושה כשהם רואים את זה.

התשובה הנהדרת הזו על הצפת ערימה צריכה לענות על כל שאלה בנושא.


תשובה 2:

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

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

הערכים null ולא מוגדרים הם גלובליים ואחרים אינם (למשל null לעומת שווא) אבל ההבדל בביצועים חשוב הרבה פחות מבעבר כאשר הדפדפנים היו הרבה יותר איטיים. קשה לענות יותר על שאלות ביצועים ספציפיות כתוצאה מהתמהיל של אופטימיזציות דפדפנים פנימיות (שמשתנות במהלך זמן ריצה) יחד עם פרטים מעשיים כמו בדיקות היקף וכו '. ניואנס עדין למינוף אופטימיזציות אלה הוא סוג המשתנים העוברים - כך ששימוש בשקר ואז מספר או אובייקט יכולים פוטנציאל להביס את שיפורי הביצועים הפנימיים הללו (כך שהקלדה עקבית עוזרת לכל דבר).

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

התחל עם ניתוח ביצועי ריצה | כלים למפתחי רשת | מפתחי גוגל

שאלה רצינית תהיה: האם זה עובד עבור הלקוח או לא? האם אני עובד על משהו מועיל לאנשים?


תשובה 3:

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

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

הערכים null ולא מוגדרים הם גלובליים ואחרים אינם (למשל null לעומת שווא) אבל ההבדל בביצועים חשוב הרבה פחות מבעבר כאשר הדפדפנים היו הרבה יותר איטיים. קשה לענות יותר על שאלות ביצועים ספציפיות כתוצאה מהתמהיל של אופטימיזציות דפדפנים פנימיות (שמשתנות במהלך זמן ריצה) יחד עם פרטים מעשיים כמו בדיקות היקף וכו '. ניואנס עדין למינוף אופטימיזציות אלה הוא סוג המשתנים העוברים - כך ששימוש בשקר ואז מספר או אובייקט יכולים פוטנציאל להביס את שיפורי הביצועים הפנימיים הללו (כך שהקלדה עקבית עוזרת לכל דבר).

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

התחל עם ניתוח ביצועי ריצה | כלים למפתחי רשת | מפתחי גוגל

שאלה רצינית תהיה: האם זה עובד עבור הלקוח או לא? האם אני עובד על משהו מועיל לאנשים?


תשובה 4:

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

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

הערכים null ולא מוגדרים הם גלובליים ואחרים אינם (למשל null לעומת שווא) אבל ההבדל בביצועים חשוב הרבה פחות מבעבר כאשר הדפדפנים היו הרבה יותר איטיים. קשה לענות יותר על שאלות ביצועים ספציפיות כתוצאה מהתמהיל של אופטימיזציות דפדפנים פנימיות (שמשתנות במהלך זמן ריצה) יחד עם פרטים מעשיים כמו בדיקות היקף וכו '. ניואנס עדין למינוף אופטימיזציות אלה הוא סוג המשתנים העוברים - כך ששימוש בשקר ואז מספר או אובייקט יכולים פוטנציאל להביס את שיפורי הביצועים הפנימיים הללו (כך שהקלדה עקבית עוזרת לכל דבר).

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

התחל עם ניתוח ביצועי ריצה | כלים למפתחי רשת | מפתחי גוגל

שאלה רצינית תהיה: האם זה עובד עבור הלקוח או לא? האם אני עובד על משהו מועיל לאנשים?


תשובה 5:

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

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

הערכים null ולא מוגדרים הם גלובליים ואחרים אינם (למשל null לעומת שווא) אבל ההבדל בביצועים חשוב הרבה פחות מבעבר כאשר הדפדפנים היו הרבה יותר איטיים. קשה לענות יותר על שאלות ביצועים ספציפיות כתוצאה מהתמהיל של אופטימיזציות דפדפנים פנימיות (שמשתנות במהלך זמן ריצה) יחד עם פרטים מעשיים כמו בדיקות היקף וכו '. ניואנס עדין למינוף אופטימיזציות אלה הוא סוג המשתנים העוברים - כך ששימוש בשקר ואז מספר או אובייקט יכולים פוטנציאל להביס את שיפורי הביצועים הפנימיים הללו (כך שהקלדה עקבית עוזרת לכל דבר).

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

התחל עם ניתוח ביצועי ריצה | כלים למפתחי רשת | מפתחי גוגל

שאלה רצינית תהיה: האם זה עובד עבור הלקוח או לא? האם אני עובד על משהו מועיל לאנשים?