黄子涵

查漏补缺——说说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

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属性,也就是这个类数组的长度,这个长度取决于函数传递的参数,点到为止,以后在慢慢研究。

posted @   黄子涵  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示