tool.js

前言

在学习和工作的过程中,我们经常需要一些辅助的东西来帮助我们将一些事情做好,比如写代码你可能需要用到一些判断数据类型的方法、得到某些元素属性的方式等。该篇文章持续记录自己在写程序过程中总结和积累的一些工具方法。代码地址

代码结构

代码的结构大致如下,每产生一个新的工具方法,便会在toll对象下挂载一个函数

1
2
3
4
5
6
7
8
9
10
11
12
13
(function (win) {
var tool = {};
// isUndefined 判断一个变量是否已经声明
tool.isUndefined = function (obj) {
return obj === typeof void 0;
};
win.tool = tool;
})(window);

1. isUndefined()

判断一个变量是否已经声明或声明但未赋值,返回值是boolean值,true已经声明,false 未声明

1
2
3
tool.isUndefined = function (obj) {
return obj === typeof void 0;
};

测试
isUndefined

2. random(min, max)

得到一个从min ~ max 的整数

1
2
3
4
5
6
7
8
9
10
11
12
tool.random = function (min, max) {
if (min == null && max == null) {
return Math.random();
}
if (max == null) {
max = min;
min = 0;
}
return min + Math.floor(Math.random() * (max - min) + 1);
};

测试
isUndefined

3. property(key)

得到一个获取对象key属性的函数

1
2
3
4
5
tool.property = function (key) {
return function (obj) {
return obj == null ? 'undefined' : obj[key];
};
};

4. isArray

判断一个对象是否是一个数组

1
2
3
tool.isArray = Array.isArray || function (obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
};

测试

isUndefined

5. isArrayLike(arr)

判断一个对象是否是类数组,类数组是拥有这样一些特征的数据结构,具有类似数组length的属性,可以通过下标 0, 1, 2来访问类数组中的元素,在js中通常我们把他叫做集合。

1
2
3
4
5
6
tool.isArrayLike= function (arr) {
var getLength = this.property('length');
var len = getLength(arr);
return !this.isArray(arr) && typeof len == 'number' && len >= 0 && length <= Number.MAX_SAFE_INTEGER;
}

测试
isUndefined