@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.umd.js CHANGED
@@ -243,7 +243,7 @@
243
243
  const setInterval = (...args) => loadOrReturnBroker().setInterval(...args);
244
244
  const setTimeout$1 = (...args) => loadOrReturnBroker().setTimeout(...args);
245
245
 
246
- const version = "2.9.11";
246
+ const version = "2.9.12";
247
247
 
248
248
  /* eslint-disable */
249
249
  // ==UserScript==
@@ -1477,40 +1477,55 @@
1477
1477
  isNull(...args) {
1478
1478
  let result = true;
1479
1479
  const checkList = [...args];
1480
- for (const objItem of checkList) {
1481
- let itemResult = false;
1482
- if (objItem === null || objItem === undefined) {
1483
- itemResult = true;
1480
+ for (const obj of checkList) {
1481
+ let flag = false;
1482
+ if (obj === null || obj === undefined) {
1483
+ // null undefined
1484
+ flag = true;
1484
1485
  }
1485
1486
  else {
1486
- switch (typeof objItem) {
1487
+ switch (typeof obj) {
1487
1488
  case "object":
1488
- if (typeof objItem[Symbol.iterator] === "function") {
1489
- /* 可迭代 */
1490
- itemResult = objItem.length === 0;
1489
+ if (typeof obj[Symbol.iterator] === "function") {
1490
+ // 可迭代
1491
+ // Map Array NodeList HTMLCollection
1492
+ if (obj instanceof Map) {
1493
+ flag = obj.size === 0;
1494
+ }
1495
+ else {
1496
+ const length = obj.length;
1497
+ if (typeof length === "number") {
1498
+ flag = length === 0;
1499
+ }
1500
+ }
1491
1501
  }
1492
1502
  else {
1493
- itemResult = Object.keys(objItem).length === 0;
1503
+ if (obj?.toString() === "[object Object]") {
1504
+ // {}
1505
+ flag = Object.keys(obj).length === 0;
1506
+ }
1494
1507
  }
1495
1508
  break;
1496
1509
  case "number":
1497
- itemResult = objItem === 0;
1510
+ flag = isNaN(obj) ? true : obj === 0;
1498
1511
  break;
1499
- case "string":
1500
- itemResult = objItem.trim() === "" || objItem === "null" || objItem === "undefined";
1512
+ case "string": {
1513
+ const trimStr = obj.trim();
1514
+ flag = trimStr.trim() === "" || trimStr === "null" || trimStr === "undefined";
1501
1515
  break;
1516
+ }
1502
1517
  case "boolean":
1503
- itemResult = !objItem;
1518
+ flag = !obj;
1504
1519
  break;
1505
1520
  case "function": {
1506
- const funcStr = objItem.toString().replace(/\s/g, "");
1521
+ const funcStr = obj.toString().replace(/\s/g, "");
1507
1522
  /* 排除()=>{}、(xxx="")=>{}、function(){}、function(xxx=""){} */
1508
- itemResult = Boolean(funcStr.match(/^\(.*?\)=>\{\}$|^function.*?\(.*?\)\{\}$/));
1523
+ flag = Boolean(funcStr.match(/^\(.*?\)=>\{\}$|^function.*?\(.*?\)\{\}$/));
1509
1524
  break;
1510
1525
  }
1511
1526
  }
1512
1527
  }
1513
- result = result && itemResult;
1528
+ result = result && flag;
1514
1529
  }
1515
1530
  return result;
1516
1531
  }