查漏补缺——说说arguments
问题
如题所示
答案
相关源码:
export function parseTime(time, cFormat) { if (arguments.length === 0) { return null } const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' let date if (typeof time === 'object') { date = time } else { if ((typeof time === 'string')) { if ((/^[0-9]+$/.test(time))) { // support "1548221490638" time = parseInt(time) } else { time = time.replace(new RegExp(/-/gm), '/') } } if ((typeof time === 'number') && (time.toString().length === 10)) { time = time * 1000 } date = new Date(time) } const formatObj = { y: date.getFullYear(), m: date.getMonth() + 1, d: date.getDate(), h: date.getHours(), i: date.getMinutes(), s: date.getSeconds(), a: date.getDay() } const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { const value = formatObj[key] // Note: getDay() returns 0 on Sunday if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] } return value.toString().padStart(2, '0') }) return time_str }
这段代码里有这样的一行代码:
if (arguments.length === 0)
这里的arguments表示什么意思?
JavaScript进阶讲解五—>js中的arguments
原来它是类数组对象,不过,这里面的内容有点多,以后再回来看看,现在单独把这个函数拎出来研究一下:
function hzhParseTime(hzhTime, hzhFormat) { if(arguments.length === 0) { console.log("黄春钦将打印以下内容:") console.log("第一次打印arguments:" + arguments) console.log("第二次打印arguments的长度:" + arguments.length) console.log("arguments[0] =" + arguments[0]) console.log("arguments[1] =" + arguments[1]) return null } console.log("黄子涵将打印以下内容:") console.log("第一次打印arguments的长度:" + arguments.length) console.log("第一次打印arguments:" + arguments) console.log("arguments[0] =" + arguments[0]) console.log("arguments[1] =" + arguments[1]) } hzhParseTime("黄子涵","黄春钦");
[Running] node "e:\HMV\JavaScript\JavaScript.js" 黄子涵将打印以下内容: 第一次打印arguments的长度:2 第一次打印arguments:[object Arguments] arguments[0] =黄子涵 arguments[1] =黄春钦 [Done] exited with code=0 in 0.836 seconds
function hzhParseTime(hzhTime, hzhFormat) { if(arguments.length === 0) { console.log("黄春钦将打印以下内容:") console.log("第一次打印arguments:" + arguments) console.log("第二次打印arguments的长度:" + arguments.length) console.log("arguments[0] =" + arguments[0]) console.log("arguments[1] =" + arguments[1]) return null } console.log("黄子涵将打印以下内容:") console.log("第一次打印arguments的长度:" + arguments.length) console.log("第一次打印arguments:" + arguments) console.log("arguments[0] =" + arguments[0]) console.log("arguments[1] =" + arguments[1]) } hzhParseTime();
[Running] node "e:\HMV\JavaScript\JavaScript.js" 黄春钦将打印以下内容: 第一次打印arguments:[object Arguments] 第二次打印arguments的长度:0 arguments[0] =undefined arguments[1] =undefined [Done] exited with code=0 in 0.284 seconds
从这个简单的实验可以看出,这个类数组对象有length属性,也就是这个类数组的长度,这个长度取决于函数传递的参数,点到为止,以后在慢慢研究。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?