From 35862f8a695b3a142f04997f262a275221edd713 Mon Sep 17 00:00:00 2001 From: Luk Lu Date: Sat, 9 Dec 2023 16:04:32 +0800 Subject: [PATCH] u --- coretool.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/coretool.js b/coretool.js index cfdc93b..07f0b48 100644 --- a/coretool.js +++ b/coretool.js @@ -246,7 +246,7 @@ module.exports = { : t // 可以是 undefined, boolean, number, string }, - read_varchain (path, root) { + read_varchain (path, root, emptyValue) { let parent = root || globalThis || global || window || {} let keychain = path.split('.') for (let key of keychain) { @@ -258,13 +258,13 @@ module.exports = { // 支持 myarr[index] 作为一个路径节点 let [all, arr, index] = key.match(/^(\w+)\[(.*)\]$/) parent = parent[arr][parseInt(index)] - } else if (typeof parent === 'object' && /^\w+$/.test(key) && typeof parent[key] != 'undefined' && parent[key] != null) { + } else if (typeof parent === 'object' && /^\w+$/.test(key) && typeof parent[key] != 'undefined') { parent = parent[key] } else { - return undefined + return emptyValue } } - return parent + return typeof parent !== 'undefined' ? parent : emptyValue }, set_varchain (path, root, value) { @@ -298,6 +298,9 @@ module.exports = { }, number_precision (number, precision = 4) { - return Number(Number(number).toFixed(precision)) + if (isFinite(number)) // null, '', '0', [] + return Number(Number(number).toFixed(precision)) + else // undefined, NaN, Infinity, {} + return 0 }, }