1 判断属性
71 -81
var hasOwnProperty = Object.prototype.hasOwnProperty;
/**
 * Check whether the object has the property.
 *
 * @param {Object} obj
 * @param {String} key
 * @return {Boolean}
 */

function hasOwn(obj, key) {
  return hasOwnProperty.call(obj, key);
}

2 判断传进来的值是否定义 定义转为字符串 未定义转为空(108 - 118)
function _toString(value) {
  return value == null ? '' : value.toString();
}

3 转为数字(127-135)
function toNumber(value) {
  if (typeof value !== 'string') {
    return value;
  } else {
    var parsed = Number(value);
    return isNaN(parsed) ? value : parsed;
  }
}

4 判断是否为纯粹对象 279-284
var toString = Object.prototype.toString;
var OBJECT_STRING = '[object Object]';

function isPlainObject(obj) {
  return toString.call(obj) === OBJECT_STRING;
}

5 (是否为数组)293
var isArray = Array.isArray;
var isArray = Array.isArray;

6 Define a property.(304-311)
function def(obj, key, val, enumerable) {
  Object.defineProperty(obj, key, {
    value: val,
    enumerable: !!enumerable,
    writable: true,
    configurable: true
  });
}

7 获取数组中的元素 (353-359)
function indexOf(arr, obj) {
  var i = arr.length;
  while (i--) {
    if (arr[i] === obj) return i;
  }
  return -1;
}

8 判断是否为对对象的方法
function isObject(obj) {
  return obj !== null && typeof obj === 'object';
}

9 将两个对象合并(267-269)
 * @param {*} obj
 * @return {Boolean}
function extend(to, from) {
  var keys = Object.keys(from);
  var i = keys.length;
  while (i--) {
    to[keys[i]] = from[keys[i]];
  }
  return to;
}

10 判断两个值是否相等 包含对象相等 389 -393
function looseEqual(a, b) {
  /* eslint-disable eqeqeq */
  return a == b || (isObject(a) && isObject(b) ? JSON.stringify(a) === JSON.stringify(b) : false);
  /* eslint-enable eqeqeq */
}

11 判断对象中是否含有__proto__ 属性 395
var hasProto = ('__proto__' in {});

  

最新文章

  1. Eclipse常用快捷键汇总
  2. Alvin
  3. MariaDB远程连接配置
  4. 每日学习心得:未定义的命名空间前缀"xsd"问题和<%%>、<%=%>、<%$%>、<%@%>的区别
  5. 分析windows宿主机Ping不通linux虚拟机的其中一种情况
  6. YZOI Easy Round 2_回文串 string
  7. iOS开发——OC篇&OC高级语法
  8. Project Euler:Problem 47 Distinct primes factors
  9. mysql1主多从配置
  10. Oracle listener服务启动后又停止的解决方案
  11. hdfs文件系统架构详解
  12. EBS财务模块表结构
  13. 《Ext JS 4.2 实战》可以买了
  14. bzoj3238 差异
  15. Django Models的数据类型汇总
  16. Groovy与Java集成常见的坑
  17. Oracle数据文件转移操作
  18. Linux服务器安装配置Nginx服务器
  19. nodejs+express+mysql+handsontable
  20. OpenCV处理直方图

热门文章

  1. [Luogu]P3338 [ZJOI2014]力(FFT)
  2. 【BZOJ 1212】[HNOI2004]L语言
  3. Docker学习总结(10)——10分钟玩转Docker
  4. MySQL中锁详解(行锁、表锁、页锁、悲观锁、乐观锁等)
  5. 国庆 day 7 下午
  6. C++的IO操作
  7. 【RQNOJ】460 诺诺的队列
  8. Nginx中的upstream 分配方法
  9. MVC获取当前Controller/Action名称
  10. java 多线程——join()方法