@whitesev/utils 2.9.11 → 2.9.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.amd.js CHANGED
@@ -239,7 +239,7 @@ define((function () { 'use strict';
239
239
  const setInterval = (...args) => loadOrReturnBroker().setInterval(...args);
240
240
  const setTimeout$1 = (...args) => loadOrReturnBroker().setTimeout(...args);
241
241
 
242
- const version = "2.9.11";
242
+ const version = "2.9.12";
243
243
 
244
244
  /* eslint-disable */
245
245
  // ==UserScript==
@@ -1473,40 +1473,55 @@ define((function () { 'use strict';
1473
1473
  isNull(...args) {
1474
1474
  let result = true;
1475
1475
  const checkList = [...args];
1476
- for (const objItem of checkList) {
1477
- let itemResult = false;
1478
- if (objItem === null || objItem === undefined) {
1479
- itemResult = true;
1476
+ for (const obj of checkList) {
1477
+ let flag = false;
1478
+ if (obj === null || obj === undefined) {
1479
+ // null undefined
1480
+ flag = true;
1480
1481
  }
1481
1482
  else {
1482
- switch (typeof objItem) {
1483
+ switch (typeof obj) {
1483
1484
  case "object":
1484
- if (typeof objItem[Symbol.iterator] === "function") {
1485
- /* 可迭代 */
1486
- itemResult = objItem.length === 0;
1485
+ if (typeof obj[Symbol.iterator] === "function") {
1486
+ // 可迭代
1487
+ // Map Array NodeList HTMLCollection
1488
+ if (obj instanceof Map) {
1489
+ flag = obj.size === 0;
1490
+ }
1491
+ else {
1492
+ const length = obj.length;
1493
+ if (typeof length === "number") {
1494
+ flag = length === 0;
1495
+ }
1496
+ }
1487
1497
  }
1488
1498
  else {
1489
- itemResult = Object.keys(objItem).length === 0;
1499
+ if (obj?.toString() === "[object Object]") {
1500
+ // {}
1501
+ flag = Object.keys(obj).length === 0;
1502
+ }
1490
1503
  }
1491
1504
  break;
1492
1505
  case "number":
1493
- itemResult = objItem === 0;
1506
+ flag = isNaN(obj) ? true : obj === 0;
1494
1507
  break;
1495
- case "string":
1496
- itemResult = objItem.trim() === "" || objItem === "null" || objItem === "undefined";
1508
+ case "string": {
1509
+ const trimStr = obj.trim();
1510
+ flag = trimStr.trim() === "" || trimStr === "null" || trimStr === "undefined";
1497
1511
  break;
1512
+ }
1498
1513
  case "boolean":
1499
- itemResult = !objItem;
1514
+ flag = !obj;
1500
1515
  break;
1501
1516
  case "function": {
1502
- const funcStr = objItem.toString().replace(/\s/g, "");
1517
+ const funcStr = obj.toString().replace(/\s/g, "");
1503
1518
  /* 排除()=>{}、(xxx="")=>{}、function(){}、function(xxx=""){} */
1504
- itemResult = Boolean(funcStr.match(/^\(.*?\)=>\{\}$|^function.*?\(.*?\)\{\}$/));
1519
+ flag = Boolean(funcStr.match(/^\(.*?\)=>\{\}$|^function.*?\(.*?\)\{\}$/));
1505
1520
  break;
1506
1521
  }
1507
1522
  }
1508
1523
  }
1509
- result = result && itemResult;
1524
+ result = result && flag;
1510
1525
  }
1511
1526
  return result;
1512
1527
  }