Lodash 4.0.0 更新文檔

Lodash 4.0.0 更新文檔

v4.0.0

2016 年 1 月 12 日DiffDocs

兼容性警告
  • 專一於 npm,移除 Bower & Component 包支持git

  • 放棄對 IE 6-8 的支持es6

  • _.forEach, _.forIn, _.forOwn, & _.times 隱式結束鏈式調用隊列api

    var wrapped = _([1, 2, 3]);
    
    // 在 3.10.1
    wrapped.forEach(function(n) { console.log(n); });
    // → returns the lodash wrapper without logging until `value` is called
    // → 在 `value` 調用以前返回 lodash 包裝器(並不會打印記錄)
    wrapped.forEach(function(n) { console.log(n); }).value();
    // → logs each value from left to right and returns the array
    // → 從左到右記錄每一個值,並返回該數組
    
    // 在 4.0.0
    wrapped.forEach(function(n) { console.log(n); });
    // → logs each value from left to right and returns the array
    // → 從左到右記錄每一個值,並返回該數組
  • 移除模塊路徑的分類名數組

    // in 3.10.1
    var chunk = require('lodash/array/chunk');
    
    // in 4.0.0
    var chunk = require('lodash/chunk');
  • 移除 _.pluck,使用 _.map 迭代器簡寫代替緩存

    var objects = [{ 'a': 1 }, { 'a': 2 }];
    
    // in 3.10.1
    _.pluck(objects, 'a'); // → [1, 2]
    _.map(objects, 'a'); // → [1, 2]
    
    // in 4.0.0
    _.map(objects, 'a'); // → [1, 2]
  • 大多數方法移除 thisArg性能優化

    var objects = [{ 'a': 1 }, { 'a': 2 }];
    var context = { 'b': 5 };
    
    function callback(item) {
      return item.a + this.b;
    }
    
    // in 3.10.1
    _.map(objects, callback, context);
    
    // in 4.0.0
    _.map(objects, _.bind(callback, context));
  • _.max & _.min 拆分紅 _.maxBy & _.minByapp

    var array = [1, 2, 3],
        objects = [{ 'a': 1 }, { 'a': 2 }];
    
    // in 3.10.1
    _.max(array); // → 3
    _.max(objects, 'a'); // → { 'a': 2 }
    
    _.min(array); // → 1
    _.min(objects, 'a'); // → { 'a': 1 }
    
    // in 4.0.0
    _.max(array); // → 3
    _.maxBy(objects, 'a'); // → { 'a': 2 }
    
    _.min(array); // → 1
    _.minBy(objects, 'a'); // → { 'a': 1 }
  • 移除方法less

    • 移除 _.support

    • 移除 _.findWhere,使用 _.find 迭代器簡寫代替

    • 移除 _.where,使用 _.filter 迭代器簡寫代替

    • 移除 _.pluck,使用 _map 迭代器簡寫代替

  • 方法名變動

    • _.first 改名爲 _.head

    • _.indexBy 改名爲 _.keyBy

    • _.invoke 改名爲 _.invokeMap

    • _.modArgs 改名爲 _.overArgs

    • _.padLeft & _.padRight 改名爲 _padStart & _.padEnd

    • _.pairs 改名爲 _.toPairs

    • _.rest 改名爲 _.tail

    • _.restParam 改名爲 _.rest

    • _.sortByOrder 改名爲 _.orderBy

    • _.trimLeft & _.trimRight 改名爲 _.trimStart & _.trimEnd

    • _.trunc 改名爲 _.truncate

  • 拆分方法

    • _.indexOf & _.lastIndexOf 拆分出 _.sortedIndexOf & _.sortedLastIndexOf

    • _.max & _.min 拆分出 _.maxBy & _.minBy

    • _.omit & _.pick 拆分出 _.omitBy & _.pickBy

    • _.sample 拆分出 _.sampleSize

    • _.sortedIndex 拆分出 _.sortedIndexBy

    • _.sortedLastIndex 拆分出 _.sortedLastIndexBy

    • _.uniq 拆分出 _.sortedUniq, _.sortedUniqBy, & _.uniqBy

  • _.sortByAll 併入 _.sortBy

  • 變動 _.at 的類別爲 「Object」

  • 變動 _.bindAll 的類別爲 Utility

  • "By" 方法的迭代器只提供一個參數

  • _.capitalize 會轉換第一個字符爲大寫 & 其餘字符爲小寫

  • _.functions 返回自有方法的方法名名

  • _.words 默承認鏈式調用

  • _.clone & _.flatten 移除 isDeep 參數

  • 當未指定方法名時,移除_.bindAll 綁定全部方法的支持

  • _.before & _.after 移除 func -第一個參數前面

低風險兼容性警告
  • _.debounce, _.mixin, & _.throttle 移除布爾值 options 參數支持

  • _.orderBy 移除布爾值 orders 參數的支持

  • _.max, _.min, & _.sum 只支持數組

  • _.template 移除傳統 options 參數簽名

  • 簡化 _.escapeRegExp,以向已中止的 ES7 提案對齊

明顯的變動
  • 4 kB (gzipped) core build (65 個方法; Backbone v1.2.4 compatible)

    _.assignIn, _.before, _.bind, _.chain, _.clone, _.compact, _.concat,

_.create, _.defaults, _.defer, _.delay, _.each, _.escape, _.every,
_.filter, _.find, _.first, _.flatten, _.flattenDeep, _.forEach,
_.has, _.head, _.identity, _.indexOf, _.invokeMap, _.isArguments,
_.isArray, _.isBoolean, _.isDate, _.isEmpty, _.isEqual, _.isFinite,
_.isFunction, _.isNaN, _.isNull, _.isNumber, _.isObject, _.isRegExp,
_.isString, _.isUndefined, _.iteratee, _.keys, _.last, _.map,
_.max, _.min, _.mixin, _.negate, _.noConflict, _.noop, _.now,
_.once, _.pick, _.reduce, _.result, _.size, _.slice, _.some,
_.sortBy, _.tap, _.thru, _.toArray, _.uniqueId, _.value, & _.values

_.intersectionWith, _.join, _.pullAll, _.pullAllBy, _.reverse, _.sortedIndexBy, _.sortedIndexOf,
_.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy, _.unionBy,
_.unionWith, _.uniqBy, _.uniqWith, _.xorBy, & _.xorWith

_.isLength, _.isMatchWith, _.isNil, _.isObjectLike, _.isSafeInteger, _.isSymbol, _.toInteger,
_.toLength, _.toNumber, _.toSafeInteger, & _.toString

_.omitBy, _.pickBy, _.setWith, _.toPairs, _.toPairsIn, & _.unset

    • 添加 3 別名

      • _.extend 做爲 _.assignIn 的別名

      • _.extendWith 做爲 _.assignInWith 的別名

      • _.first 做爲 _.head 的別名

    • 移除 17 個別名

      _.all, _.any, _.backflow, _.callback, _.collect, _.compose, _.contains,

    _.detect, _.foldl, _.foldr, _.include, _.inject, _.methods, _.object,
    _.#run, _.select, & _.unique

    • 性能優化

      • 開啓 _.at, _.find & _.findLast 的快速合併機制

      • 優化匹配方法,避免若是 objectsource 相同時進行深度爬行

      • 優化循環引用搜索

      • 優化 _.isEqual,避免當數組或對象擁有不一樣長度時的堆棧爬行

    • 支持 Emoji

      • Added support for astral symbols, combining diacritical marks, dingbats,
        regional indicator symbols, unicode modifiers, variation selectors, &

      zero-width-joiners to string methods

    • 功能性改進

    其餘變動
    • _.memoize.Cache 添加 clear 方法

    • 爲防反跳函數和節流閥函數添加 flush 方法

    • _.clone, _.isEqual, & _.toArray 支持 ES6 映射、集合 & 標記

    • _.isEqual 支持數組緩存

    • _.toArray 支持轉換迭代器

    • _.zipObject 支持深度路徑

    • Changed UMD to export to window or self when available regardless of other exports

    • _.flow & _.flowRight 如今能夠接受一個函數數組

    • 確保 「Collection」 方法能將函數視爲對象

    • 確保防反跳方法 cancel 可以清除 args & thisArg 引用

    • 確保 _.add, _.subtract, & _.sum 不會跳過 NaN

    • 確保 _.assign, _.defaults, & _.merge 強制將 object 值轉換爲對象

    • 確保使用 new 操做符調用時 _.bindKey 綁定的函數時調用 object[key]

    • 確保 _.clone 可以將生成器視爲函數

    • 確保 _.clone 可以根據源對象的 [[Prototype]] 進行克隆

    • 確保 _.defaults 可以根據 Object.prototype 分配屬性

    • 確保 _.defaultsDeep 不能將字符串併入數組

    • 確保 _.defaultsDeep & _.merge 不會修改源對象

    • 確保 _.defaultsDeep 可以循環引用

    • 確保 _.isFunction 對生成器函數可以返回 true

    • 確保 _.keys 在 Safari 9 的嚴格模式下將跳過 "length" 屬性

    • 確保 _.merge 可以直接佈置類型數組

    • 確保 _.merge 不能將字符串轉換爲數組

    • 確保 _.merge 可以將純粹對象合併到非純粹對象中

    • 確保 _#plant 的克隆隊列充值迭代器的數據

    • 確保 _.random min 大於 max 時交換 min & max

    • 確保 _.range preserves the sign of start of -0

    • 確保 _.reduce & _.reduceRight 在數組分支中使用 getIteratee

    • 修正 _.floorprecision 參數時四捨五入的問題

    • 使 _(...) 成爲一個迭代器 & 可迭代的對象

    • 使 _.drop, _.take, & 從右迭代的方法強制將 nundefined 轉換爲 0

    相關文章
    相關標籤/搜索