חלקים ממדגישים בהשראה או בהשאלה מהפונקציונלית, Prototype.js של אוליבר סטיל ושל ג'ון Resig מיקרו-בניית התבנית.
תמיכת תכנות פונקציונלית נוספת, אך ללא כל הארכה של מובנים JavaScript האובייקטים.
תחתון מספק פונקציות 60-מוזרות שתומכות בשני חשודים פונקציונליים הרגילים: מפה, בחר, להפעיל & mdash; כמו גם עוזרים מיוחדים יותר: פונקציה מחייבת, בניית תבנית JavaScript, בדיקות שוויון עמוקות, וכן הלאה. זה צירים לפונקציות מובנות, אם דפדפנים הנוכחיים, כך מודרניים ישתמשו יישומי יליד foreach, המפה, להפחית, מסנן, כל, כמה וindexOf.
יציאות של Underscore.js זמינות ל:
PHP
פִּיתוֹן
פרל
מה חדש בהודעה זו:
- מוסיפה שיטת _.create, כרזה גרסה של Object.create.
- עובד מסביב באג iOS שיכול בצורה לא נכונה לגרום isArrayLike להיות JIT-אד. גם מתקן באג כאשר עוברים 0 עד isArrayLike.
מה חדש בגרסת 1.8.2:
- תיקונים / שינויים מסוימים-אינטרנט-אקספלורר ישן ו קשורים מקרה קצה התנהגות.
מה חדש בגרסת 1.7.0:
- לעקביות ומהירות על פני דפדפנים, מדגיש עכשיו מתעלם שיטות מערך מקוריות עבור foreach, המפה, להפחית, reduceRight, מסנן, כל, כמה, indexOf, וlastIndexOf. & Quot; דליל & quot; מערכים הם באופן רשמי מתים בקו תחתון.
- נוסף _.iteratee כדי להתאים אישית את & הלבן בשימוש על ידי פונקציות אוסף. שיטות מדגישות רבות ייקחו טיעון מחרוזת לחיפושים בסגנון _.property קלים יותר, אובייקט לסינון סגנון _.where, או פונקציה כהתקשרות מותאמת אישית.
- נוסף _.before כמקבילה ל_.after.
- נוסף _.negate כדי להפוך את ערך האמת של נשוא עבר-ב.
- נוסף _.noop כפונקציה מציינת מיקום ריקה שימושית.
- _. IsEmpty עכשיו עובד עם אובייקטי טענות.
- _. עכשיו שומר נגד אובייקטי nullish.
- שיטות בסיס דרוס כמו כל אחד וכמה והם יהיו בשימוש פנימי על ידי פונקציות מדגישות אחרות.
- פונקציות הבריחה להתמודד מרכאות בודדות אחוריות (`), להתמודד עם ≤ 8 באג IE.
- לעקביות, _.union ו_.difference לעבוד רק עם מערכים ולא args variadic.
- _. Memoize חושף את המטמון של ערכי memoized כנכס על התפקוד חזר.
- _. בחירה מקבלת iteratee וטיעוני הקשר להתקשרות מתקדמת יותר.
- תבניות מדגישות לא יקבלו עוד אובייקט נתונים ראשוני. _.template תמיד מחזיר פונקציה עכשיו.
עכשיו
מה חדש בגרסת 1.5.0:
- מפת מקור עכשיו סיפקה לניפוי קל יותר של לבנות ייצור minified של תחתון.
מה חדש בגרסת 1.4.4:
- נוסף _.findWhere, למציאת האלמנט הראשון ברשימה שמתאימה מערכת מסוימת של מפתחות וערכים.
- נוסף _.partial, לחלקו החלת פונקציה מבלי לשנות ההתייחסות הדינמית שלה לזה.
- פשוט לאגד על ידי הסרת חלק מהמקרים קצה מעורב פונקציות בנאי. בקיצור:. לא _.bind הבנאים שלך
- אופטימיזציה קטין להפעיל.
- באג תקן בגרסת minified בשל minifier אופטימיזציה משם בצורה לא נכונה isFunction.
מה חדש בגרסת 1.4.3:
- נוסף איטרטור _.identity ברירת המחדל לcountBy ו את החוליה.
- פונקצית uniq יכולה עכשיו לקחת מערך, איטרטור, הקשר כרשימת הטיעון.
- הפעמים לתפקד עכשיו מחזיר את מערך המיפוי של תוצאות איטרטור.
- פשוט וקבוע באגים במצערת.
מה חדש בגרסת 1.4.2:
- לתאימות לאחור, חזר למראש 1.4. 0 התנהגות כאשר עוברים null לפונקציות איטרציה. עכשיו הם הפכו לא-אופ שוב.
מה חדש בגרסת 1.4.0:
- הוסיף פונקצית זוגות, להפיכת אובייקט JavaScript לזוגות [מפתח, ערך] ... וכן פונקצית אובייקט, להמרת מערך של זוגות [מפתח, ערך] לאובייקט.
- הוסיף פונקצית countBy, לספירת מספר האובייקטים ברשימה התואמים את קריטריונים מסוימים.
- נוסף פונקציה להפוך, לביצוע היפוך פשוט של המפתחות וערכים באובייקט.
- נוסף שבו פונקציה, למקרים קלים של סינון רשימה לאובייקטים עם ערכים ספציפיים.
- נוסף פונקציה להשמיט, לסינון אובייקט להסיר את מפתחות מסוימים.
- הוסיף פונקציה אקראית, לחזור מספר אקראי בטווח נתון.
- _. פונקציות debounce'd עכשיו לחזור הערך המעודכן האחרון שלהם, פונקציות _.throttle'd בדיוק כמו לעשות.
- פונקצית sortBy פועלת כעת אלגוריתם סוג יציב.
- נוסף אפשרות fromIndex האופציונלית לindexOf וlastIndexOf.
- & quot; דליל & quot; מערכים אינם נתמכים עוד בפונקציות איטרציה תחתונות. השתמש עבור במקום (או יותר טוב, אובייקט).
- פונקציות דקות ומקסימום יכולה עכשיו להיקרא על מערכים גדולים מאוד.
- אינטרפולציה בתבניות החברה מייצגת null ולא מוגדר כמחרוזת הריקה.
מה חדש בגרסת 1.3.2:
- נוסף פונקצית הבחירה, המאפשרת לך לסנן אובייקט מילולי עם רשימה לבנה של שמות רכוש מותר.
- נוסף פונקצית תוצאה מכך, לנוחות בעבודה עם APIs המאפשר גם פונקציות או תכונות גלם.
- נוסף פונקצית isFinite, לפעמים בגלל ידיעת שערך הוא מספר פשוט לא מספיק.
- פונקצית sortBy יכולה עכשיו גם עברה את שם המחרוזת של נכס לשימוש כסדר מיון על כל אובייקט.
- uniq הקבוע לעבודה עם מערכים דלילים.
- פונקצית ההבדל עכשיו מבצעת רדוד לשטח במקום עמוק אחד בחישוב הבדלי מערך.
- פונקצית debounce עכשיו לוקחת פרמטר מיידי, דבר שיגרום לקריאה החוזרת לירות על המוביל במקום נגרר לקצה.
מה חדש בגרסת 1.3.1:
- נוסף פונקצית _.has, כבטוח יותר דרך להשתמש hasOwnProperty.
- נוסף _.collect ככינוי ל_.map. Smalltalkers, לשמוח.
- שוחזר שינוי ישן כל כך _.extend שבצורה נכונה להעתיק את המפתחות עם ערכים מוגדרים שוב.
- תיקון באג להפסיק לברוח חתכים בתוך אינטרפולציה ב_.template.
מה חדש בגרסת 1.3.0:.
- AMD תמיכה (RequireJS) הוסרה ממדגיש
מה חדש בגרסת 1.2.4:
- האם (וכנראה צריך) לכתוב _.chain (רשימה) במקום _ .chain (רשימה) ().
מה חדש בגרסת 1.2.3:
- היקף דינמי עכשיו השתמר ל_.template מלוקט פונקציות, כך שאתה יכול להשתמש בערכו של זה, אם תרצו.
- תמיכת מערך דלילה של _.indexOf, _.lastIndexOf.
- _.reduce ו_.reduceRight שניהם יכולים עכשיו להיות מועברים ערך במפורש לא מוגדר.
מה חדש בגרסת 1.2.2:
- tweaks המשך לסמנטיקת _.isEqual. עכשיו הפרימיטיבים JS נחשבים שווה ערך לגרסאות העטופות, ומערכי השוואה בתכונותיהם המספריים בלבד.
% & # X3e%});; וx3c # :
מה חדש בגרסת 1.2.1:
- כמה תיקוני באגים חשובים ל_.isEqual, ש עכשיו צריך לעשות טוב יותר במערכי מוטציה, ועל אי-מערך אובייקטים בעלי תכונות אורך.
- יכול כעת _.groupBy (רשימה, "רכוש") כקיצור דרך לקיבוץ ערכים על ידי רכוש משותף מסוים.
- _. פונקציות throttle'd עכשיו לפטר מייד עם קריאה, ולאחר מכן הם מוגבלים בשיעור.
- רוב _.is [סוג] בודק כבר לא ducktype.
- פונקצית _.bind עכשיו גם עובדת על בנאים, לה-ES5 ... אבל אף פעם לא היית רוצה להשתמש ב_.bind על פונקצית בנאי.
- _. שיבוט כבר לא עוטף את הסוגים שאינם אובייקט באובייקטים.
- _. למצוא ו_.filter עכשיו שמות המועדפים ל_.detect ו_.select.
מה חדש בגרסת 1.2.0:
- פונקצית _.isEqual תומכת כעת שוויון עמוק אמיתי השוואות, עם בדיקות למבנים מחזוריים, הודות לקיט קיימברידג '.
מה חדש בגרסת 1.1.7:
- נוסף _.groupBy, אשר צובר אוסף ל קבוצות של פריטים כמו.
- _.union ו_.difference נוסף, כדי להשלים את _.intersection (מחדש בשם).
- שיפורים שונים לתמיכה של מערכים דלילים. _.toArray עכשיו חוזר שיבוט, אם ישירות עבר מערך. _.functions עכשיו גם מחזיר את השמות של פונקציות שנמצאות בשרשרת אב הטיפוס.
מה חדש בגרסת 1.1.6:
_.after
- נוסף, שיחזיר פונקציה שרק רץ אחרי ראשון להיקרא מספר מסוים של פעמים. _.invoke יכול עכשיו לקחת התייחסות פונקציה ישירה. _.every דורש כעת פונקצית איטרטור יועבר, שמשקפת את ה- API ECMA5. _.extend אין מקשי עותקים יותר כאשר הערך אינו מוגדר. _.bind עכשיו שגיאות כאשר מנסות לאגד ערך לא מוגדר.
מה חדש בגרסת 1.1.4:
- תאימות משופרת עם שיטות המערך של ES5 כאשר עוברת null כ ערך. _.wrap עכשיו כראוי מגדיר את זה לפונקציה העטופה. _.indexOf עכשיו לוקח דגל אופציונאלי למציאת מדד ההכנסה במערך שמובטח כבר להיות מסודרים.
מה חדש בגרסת 1.1.3:
- בCommonJS, מדגיש עשויה כעת יידרש
עם רק :
מה חדש בגרסת 1.0.4:
_ פונקציה
- memoize, אשר יכול לשמש ל. להאיץ חישובים חוזרים ונשנים יקרים במטמון התוצאות.
מה חדש בגרסת 1.0.2
:.- _.isArguments הקבוע לאופרה >
תגובות לא נמצא